'

Виды проектов Visual Studio.Net 2012 предлагает различные шаблоны для ваших начальных проектов.

Понравилась презентация – покажи это...





Слайд 0

Виды проектов Visual Studio.Net 2012 предлагает различные шаблоны для ваших начальных проектов. Основные поддерживаемые языки программирования: С# , C++, F#, Visual Basic


Слайд 1

Нас интересуют шаблоны для программирования на С# в среде Windows


Слайд 2

Сейчас нас интересует два вида шаблонов для С#: Консольное приложение Приложение Windows Forms Давайте разберемся, как создаются проекты и что они изначально собой представляют. С точки зрения программиста, компилятор создает решение, с точки зрения CLR - сборку, содержащую PE-файл. Программист работает с решением, CLR - со сборкой.


Слайд 3

Решение содержит один или несколько проектов, ресурсы, необходимые этим проектам, и возможно, дополнительные файлы, не входящие в проекты. Один из проектов решения должен быть выделен и назначен стартовым проектом. Выполнение решения начинается со стартового проекта. Проекты одного решения могут быть зависимыми или независимыми. Например, все проекты одной лекции могут быть для удобства собраны в одном решении и иметь общие свойства. Изменяя стартовый проект, получаем возможность перехода к нужному примеру. Стартовый проект должен иметь точку входа - класс, содержащий статическую процедуру с именем Main( ), которой автоматически передается управление в момент запуска решения на выполнение.


Слайд 4

В уже имеющееся решение можно добавлять как новые, так и существующие проекты. Один и тот же проект может входить в несколько решений. Проект состоит из классов, собранных в одном или нескольких пространствах имен. Пространства имен позволяют структурировать проекты, содержащие большое число классов, объединяя в одну группу близкие классы. Если над проектом работает несколько исполнителей, то, как правило, каждый из них создает свое пространство имен. Помимо структуризации, это дает возможность присваивать классам имена, не задумываясь об их уникальности. В разных пространствах имен могут существовать одноименные классы. Проект - это основная единица, с которой работает программист. Он выбирает тип проекта, а Visual Studio создает скелет проекта в соответствии с выбранным типом.


Слайд 5

Консольный проект Если установить вид проекта – консольное приложение, то компилятор создаст решение (Solution “ConsoleApplication1”). Решение, естественно, имеет один проект В нижней части - имя проекта и решения и где он будет размещаться


Слайд 6


Слайд 7


Слайд 8

В результате в указанной папке появится достаточно много файлов.


Слайд 9

Предложение using NameA облегчает запись при использовании классов, входящих в пространство NameA, поскольку в этом случае не требуется каждый раз задавать полное имя класса с указанием имени пространства, содержащего этот класс. Слегка изменим проект: using System; namespace Rab1 { class Program { static void Main(string[ ] args) { Console.WriteLine("Введите Ваше имя"); string name; name = Console.ReadLine( ) ; if (name == "") Console.WriteLine("Здравствуй, мир!"); else Console.WriteLine("Здравствуй, " + name + "!"); Console.WriteLine("Stop"); Console.ReadLine( ); } } } Если запустить исполняемый файл проекта ConsoleApplication1.exe


Слайд 10

Windows-проект Если установить вид проекта – Приложение Windows Forms


Слайд 11

После запуска будут сгенерированы следующие файлы С#: Program.cs Form1.cs Form1.designer.cs


Слайд 12

Сгенерируется код программы (Program.cs):


Слайд 13

Процедура Main( ) содержит строчку Application.Run(new Form1( )); Класс Application из пространства имен System.Windows.Forms вызывает статический метод Run, которому в качестве фактического аргумента передается объектное выражение new Form1( ). При вычислении этого выражения создается объект - экземпляр класса Form1. Для создания объекта вызывается конструктор класса.


Слайд 14

Файл Form1.cs: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace rab2 { public partial class Form1 : Form // partial – позволяет определить класс в различных файлах { public Form1( ) { InitializeComponent( ); } } } В классе есть конструктор, вызывающий закрытый метод класса InitializeComponent() , который описан в файле Form1.designer.cs


Слайд 15

namespace WindowsFormsApplication3 { partial class Form1 { /// <summary> /// Требуется переменная конструктора. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Освободить все используемые ресурсы. /// </summary> /// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Код, автоматически созданный конструктором форм Windows /// <summary> /// Обязательный метод для поддержки конструктора - не изменяйте /// содержимое данного метода при помощи редактора кода. /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Text = "Form1"; } #endregion } } }


Слайд 16

Построенный по умолчанию класс Form1 является наследником класса Form и автоматически наследует его функциональность - свойства, методы, события. При создании объекта этого класса, характеризующего форму, одновременно Visual Studio создает визуальный образ объекта - окно, которое можно заселять элементами управления. В режиме проектирования эти операции можно выполнять вручную, при этом автоматически происходит изменение программного кода класса. Появление в проектe формы, открывающейся по умолчанию при запуске, означает переход к визуальному, управляемому событиями программированию. Сегодня такой стиль является общепризнанным, а стиль консольного приложения следует считать анахронизмом, правда, весьма полезным при изучении свойств языка.


Слайд 17

Проект WindowsHello Создадим проект в стиле Windows. Для этого модифицируем файл Form1.cs с помощью средств визуального конструирования (переключим из View (Вид) -> Code (Код) в View -> Designer (Конструктор)) Подключим панель Toolbox (View -> Toolbox (Панель элементов))


Слайд 18

Добавим в форму следующие элементы управления: текстовое окно и метку (TextBox и Label). По умолчанию они получат имена textBox1 и label1. Текстовое окно предназначается для ввода имени пользователя, метка, визуально связанная с окном, позволит указать назначение текстового окна. Можно установить свойство Multiline для текстового окна как true, свойство Text у метки - Ваше Имя;


Слайд 19

Можно установить свойство Multiline для текстового окна как true, свойство Text у метки - Ваше имя:


Слайд 20

аналогичная пара элементов управления - textBox2 и label2 - предназначены для вывода приветствия. Поскольку окно textBox2 предназначено для вывода, то включаем его свойство ReadOnly; Добавим командную кнопку (Button), обработчик события Click которой и будет организовывать чтение имени пользователя из окна textBox1 и вывод приветствия в окно textBox2.


Слайд 21

Теперь надо задать обработчик события. Это можно делать по-разному. Есть стандартный способ включения событий. Достаточно выделить нужный элемент в форме, в окне свойств нажать кнопку событий (со значком молнии) и из списка событий выбрать нужное событие и щелкнуть по нему. В данной ситуации все можно сделать проще - двойной щелчок по кнопке включает событие, и автоматически строится заготовка обработчика события с нужным именем и параметрами. private void button1_Click(object sender,System.EventArgs e) { string temp; temp = textBox1.Text; if( temp == "") textBox2.Text = "Здравствуй, мир!"; else textBox2.Text = "Здравствуй, " + temp + " !"; } private void button1_Click(object sender, EventArgs e) { } Напишем код обработки


Слайд 22

Файл Program.cs не изменился. Файл Form1.designer.cs : namespace WindowsFormsApplication3 { partial class Form1 { /// <summary> /// Требуется переменная конструктора. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Освободить все используемые ресурсы. /// </summary> /// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); }


Слайд 23

#region Код, автоматически созданный конструктором форм Windows /// <summary> /// Обязательный метод для поддержки конструктора - не изменяйте /// содержимое данного метода при помощи редактора кода. /// </summary> private void InitializeComponent() { this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); this.label2 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.button1 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(28, 33); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(60, 13); this.label1.TabIndex = 0; this.label1.Text = "Ваше имя:"; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(99, 33); this.textBox1.Multiline = true; this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(100, 20); this.textBox1.TabIndex = 1; //


Слайд 24

// // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(28, 81); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(44, 13); this.label2.TabIndex = 2; this.label2.Text = "Привет"; // // textBox2 // this.textBox2.Location = new System.Drawing.Point(99, 78); this.textBox2.Name = "textBox2"; this.textBox2.ReadOnly = true; this.textBox2.Size = new System.Drawing.Size(100, 20); this.textBox2.TabIndex = 3; // // button1 // this.button1.Location = new System.Drawing.Point(278, 55); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 4; this.button1.Text = "Привет"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click);


Слайд 25

// // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(461, 273); this.Controls.Add(this.button1); this.Controls.Add(this.textBox2); this.Controls.Add(this.label2); this.Controls.Add(this.textBox1); this.Controls.Add(this.label1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.Button button1; } }


Слайд 26

Файл Form1.cs: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string temp; temp = textBox1.Text; if (temp == "") textBox2.Text = "Здравствуй Мир!"; else textBox2.Text = "Здравствуй" + temp + "!"; } } }


Слайд 27


Слайд 28

Программа на языке C# может состоять из одного или нескольких файлов. Каждый файл может содержать ноль или более пространств имен. Пространство имен может включать такие элементы, как классы, структуры, интерфейсы, перечисления и делегаты, а также другие пространства имен. Ниже приведена скелетная структура программы C#, содержащая все указанные элементы. // A skeleton of a C# program using System; namespace YourNamespace { class YourClass { } struct YourStruct { } interface IYourInterface { } delegate int YourDelegate(); enum YourEnum { } namespace YourNestedNamespace { struct YourStruct { } } class YourMainClass { static void Main(string[] args) { //Your program starts here... } } }


×

HTML:





Ссылка: