对象是具有数据、行为和标识的编程结构。
对象数据包含在对象的字段、属性和事件中,对象行为则由对象的方法和接口定义。
对象具有以下特点:
C# 中使用的全都是对象,包括 Windows 窗体和控件。
对象是实例化的;也就是说,对象是从类和结构所定义的模板中创建的。
对象使用属性获取和更改它们所包含的信息。
对象通常具有允许它们执行操作的方法和事件。
Visual Studio 提供了操作对象的工具:使用“属性”窗口可以更改对象(如 Windows 窗体)的属性。使用对象浏览器可以检查对象的内容。
所有 C# 对象都继承自 Object
类具有以下特点:
C# 只支持单继承:类只能从一个基类继承实现。
一个类可以实现多个接口。
类定义可在不同的源文件之间进行拆分。partial 。
静态类是仅包含静态方法的密封类.
类是使用 clsss 关键字来定义的
程序代码
结构具有以下特点:
结构是值类型,而类是引用类型。
向方法传递结构时,结构是通过传值方式传递的,而不是作为引用传递的。
与类不同,结构的实例化可以不使用 new 运算符。
结构可以声明构造函数,但它们必须带参数。
一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。
结构可以实现接口。
在结构中初始化实例字段是错误的。
结构是以struct 关键字定义的.
尽管结构的静态字段可以初始化,结构实例字段声明还是不能使用初始值设定项。
结构不能声明默认构造函数(没有参数的构造函数)或析构函数。
程序代码
struct 类型适于表示 Point、Rectangle 和 Color 等轻量对象。尽管可以将一个点表示为类,但在某些情况下,使用结构更有效。
对象数据包含在对象的字段、属性和事件中,对象行为则由对象的方法和接口定义。
对象具有以下特点:
C# 中使用的全都是对象,包括 Windows 窗体和控件。
对象是实例化的;也就是说,对象是从类和结构所定义的模板中创建的。
对象使用属性获取和更改它们所包含的信息。
对象通常具有允许它们执行操作的方法和事件。
Visual Studio 提供了操作对象的工具:使用“属性”窗口可以更改对象(如 Windows 窗体)的属性。使用对象浏览器可以检查对象的内容。
所有 C# 对象都继承自 Object
类具有以下特点:
C# 只支持单继承:类只能从一个基类继承实现。
一个类可以实现多个接口。
类定义可在不同的源文件之间进行拆分。partial 。
静态类是仅包含静态方法的密封类.
类是使用 clsss 关键字来定义的

public class Person
{
// Field
public string name;
// Constructor
public Person()
{
name = "unknown";
}
// Method
public void SetName(string newName)
{
name = newName;
}
}
class TestPerson
{
static void Main()
{
Person person1 = new Person();
System.Console.WriteLine(person1.name);
person1.SetName("John Smith");
System.Console.WriteLine(person1.name);
}
}
{
// Field
public string name;
// Constructor
public Person()
{
name = "unknown";
}
// Method
public void SetName(string newName)
{
name = newName;
}
}
class TestPerson
{
static void Main()
{
Person person1 = new Person();
System.Console.WriteLine(person1.name);
person1.SetName("John Smith");
System.Console.WriteLine(person1.name);
}
}
结构具有以下特点:
结构是值类型,而类是引用类型。
向方法传递结构时,结构是通过传值方式传递的,而不是作为引用传递的。
与类不同,结构的实例化可以不使用 new 运算符。
结构可以声明构造函数,但它们必须带参数。
一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。
结构可以实现接口。
在结构中初始化实例字段是错误的。
结构是以struct 关键字定义的.
尽管结构的静态字段可以初始化,结构实例字段声明还是不能使用初始值设定项。
结构不能声明默认构造函数(没有参数的构造函数)或析构函数。

public struct CoOrds
{
public int x, y;
public CoOrds(int p1, int p2)
{
x = p1;
y = p2;
}
}
{
public int x, y;
public CoOrds(int p1, int p2)
{
x = p1;
y = p2;
}
}
struct 类型适于表示 Point、Rectangle 和 Color 等轻量对象。尽管可以将一个点表示为类,但在某些情况下,使用结构更有效。