类是现实世界事物的模型,是对现实世界事物进行抽象所得到的结果
事物包括物质(实体)和运动(逻辑)
建模是一个只存留需要舍去不需要的过程
对象也叫实例,是类经过“实例化”后得到的内存中的实体。可以理解为类是概念,对象是实体
依据类创建一个对象就是“实例化”
using System.Windows.Forms;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
(new Form()/*new将Form实例化*/).ShowDialog();//ShowDialog将窗口显示出来,不需要显示时可以只写 new Form();
}
}
}
Form是表单,实例化后就是一个窗口,Form后面的括号代表初始化“表单”的方式
引用变量可以让我们多次访问同一实例
类似于C语言的创造一个变量
using System.Windows.Forms;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
Form hw;//hw就是引用变量
hw = new Form();
hw.Text = "Hello World";
hw.ShowDialog();
}
}
}
实例不一定对应有引用变量;引用变量不一定引用了实例;
using System.Windows.Forms;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
Form a;
Form b;
a = new Form();
b = a;
a.Text = "A";
b.Text = "B";
a.ShowDialog();
}
}
}
多个引用变量可以对应一个实例。上段代码中两个引用变量都在引用实例,但都对应的同一个实例,所以编译出来的窗口名字是“B”
存储数据,组合起来表示类或对象当前的状态
模型类或对象重在属性,如Entity Framework
由C语言的函数进化而来,表示类或对象“能做什么”
工具类或对象重在方法,如Console
类或对象通知其他类或对象的机制
通知类或对象重在事件,如Timer
事件可以方便编程,需要善用事件机制,否则容易让程序难以维护、或者出Bug
类的这三大成员可以在MSDN文档中查看
MSDN文档中有Remarks来详细描述类
MSDN文档需要在VS Installer - 单个组件中下载Helpviewer
using System;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
double a = Math.Sqrt(8);
Console.WriteLine(a);
}
}
}
上段代码就是创建一个变量a,a是8的开方,再打印a
using System;
using System.Windows;
using System.Windows.Threading;
namespace WpfApp1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(1);
timer.Tick += Timer_Tick;
timer.Start();
}
private void Timer_Tick(object sender, EventArgs e)
{
this.TextBox.Text = DateTime.Now.ToString();
}
}
}
上段代码是创建一个桌面时钟,1s更新一次
静态(static)成员是属于某个类,静态成员是类与生俱来的,只要创建类就有了静态成员。比如全人类(类)和 人的总量(静态成员)
实例(非静态)成员是属于某个对象。比如一个人(对象)和 他的身高(实例成员),这个实例成员转化到静态成员就是 全人类(类)和 平均身高(静态成员)
using System.Windows.Forms;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
Form form = new Form();
form.Text/*实例成员*/ = "Hello World";
form.ShowDialog();
}
}
}
MSDN文档中红色标注就是指的是静态成员
Binding指的是编译器把一个成员与类或对象关联起来的方法,类似C语言创建结构体后使用成员的方法,Binding操作符“.”——成员访问操作符