类的详解
类的成员包括数据和函数
数据成员包含类的数据——字段,成员,事件。
数据成员可以是静态数据(与整个类相关)或实例数据(类的每个实例都有他的数据副本),通常对面向对象编程语言来说,类成员总是实例成员,除非用static显示声明。
const——声明常量,用public 就可以外部访问
public const string day="monday";
readonly
函数成员包括方法,属性,构造函数,终结器,运算符和索引器。
方法
方法与某个类相关的函数可以是实例方法也可以是静态方法。
方法的参数传递包含引用传递和值传递。引用传递在方法内部对变量进行改变后退出仍发挥作用,而值传递被调用的只是一个变量副本,在方法退出后,对变量的修改会丢失。所以对复杂的数据类型,引用传递效率更高。
ref 通过值传递变量是默认的,也可以迫使值参数通过引用传递给方法,如果把一个参数传递给方法,且有ref,则该方法对变量所做的任何改变都会影响原值,详解请点击引用传递
out c#要求变量被引用前必须初始化。尽管在把输入变量传递给函数前,可以用没意义的值初始化它们,但这样做没必要,有时会引起混乱。
static void some(out int i)
{
i=100;
}
public static int Main()
{
int i;
some(out i);
Console.WriteLine(i);
return 0 ;
}
如果函数中没有给out参数分配一个值,该方法不能编译。
方法重载
class resulr
{
void disa(string res)
{
}
void disa(int res)
{
}
}
注意:2个方法不能仅在返回值类型上区分
2个方法不能仅根据传输的声明为ref还是out来区分。
属性
private string _some;
pubilc string some
{
get
{
return _some;
}
set
{
if(value.length>50)
else
_some=value;
}
}
可设置可读或可写属性或者像上面限制属性
get是公共属性 ,set是受保护属性
构造函数
如果没有提供任何构造函数,编译器会自动创建默认构造函数
pubilc class mynum
{
private int number;
pubilc mynum(int number)
{
this.number=number;
}
}
静态构造函数
class myclass
{
static myclass()
{
}
}
编写静态构造函数的一个原因是类有一些静态字段或属性需要在第一次使用类之前从外部源中初始化这些静态字段和属性。
静态构造函数不能带任何参数,一个类只能有一个构造函数,而且只能访问静态成员。

浙公网安备 33010602011771号