C# 属性和方法
1. 属性
属性的概述
1. 属性是提供对对象或类的特性进行访问的成员。属性提供功能强大的方法将声明信息与C#代码(类型,方法,属性等)相关联。属性的设置包括字符串的长度,字体的大小,窗口的焦点,用户的名字等。
2. 使程序员可以创造新的声明信息的种类,称为属性。属性是对现实世界中实体特征的抽象,是为访问自定义类型的注释信息提供通用的访问方式。属性使类能够以一种公开的思路方法获取和设置值,同时隐藏实现或验证代码。C#的属性具有保护功能,可以让用户像访问域一样访问属性。
3. 属性包括字符串各种信息和字符串有关联类型的命名成员,相同的是,语法相同,不同的是,属性不设置存储位置。属性是域的自然扩展。属性提供功能强大的方法以将声明信息与C#代码(类型,方法,属性等)相关联。属性可在运行时查询,并可以以任意多种方式使用。
4. 属性是通过属性类的声明定义的,属性类可以具有定位和命名参数。属性“”是使用属性说明符加到C#程序中的实体上的,而且可以在运行时作为属性实例来检索。
5. 属性的“设置”(Set)方法和“获取(Get)”方法包含在属性声明中,Get属性访问器用于返回属性值,而Set访问器用于分配新值。
6. 属性的使用
_name(属性名)
public [对应字段类型] 属性名Name
{
get{return _name;}
set{_name=value;}
}
2. 方法
1. 方法的声明
1) 访问修饰符 :public,private(方法的默认访问修饰符)
2) 返回值类型:void 和 非void
3) 方法名称 : 规范是方法名称取动词,每个单词的首字母大写。
4) 方法体 :编写逻辑语句
Public:公共的,在同一个命名空间下,任何类都可以访问,在不同的命名空间下,要访问的话,添加对应的命名空间,并添加引用即可。
Internal:在当前程序集中可以访问。
protected:受保护的,在父类和父类的子类中可以访问。
private:私有的,只能在当前类中可以访问。
返回值类型:
void 表示没有返回值,不能使用return来返回具体的值,但是可以使用return来终止当前方法;
非void必须返回指定的类型的值。但是有两种例外,① 返回值为double类型的方法,可以返回float,或者int类型的值。②返回值是父类类型的方法,可以返回其子类类型的值。
方法的名称:一般都是动词,每个单词的首字母要大写。
方法体: 编写逻辑语句。
2. 方法的参数类型
c#中方法的参数有四种类型
1. 值参数类型(不加任何修饰符,是 默认的类型)
值传递: 值类型是方法默认的参数类型,采用的是值拷贝的方式。也就是说,如果使用的是值类型,则可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值。使用值类型的例子如下:(下面的Swap()未能实现交换的功能,因为控制传递回调用方时不保留更改的值)
2. 引用型参数(以ref修饰符声明)
引用传递(ref类型): ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。
传递到 ref 参数的参数必须最先初始化。这与 out 不同,out 的参数在传递之前不需要显式初始化。
如果一个方法采用 ref 或 out 参数,而另一个方法不采用这两类参数,则可以进行重载。
3. 输出型参数(以out修饰符声明)
输出类型(out类型): out 关键字会导致参数通过引用来传递。这与 ref 关键字类似。 与 ref 的不同之处:
ref 要求变量必须在传递之前进行初始化,out 参数传递的变量不需要在传递之前进行初始化。
尽管作为 out 参数传递的变量不需要在传递之前进行初始化,但需要在调用方法初始化以便在方法返回之前赋值。
4. 数组型参数(以params修饰符声明)
数组型参数类型(params类型): params 关键字可以指定在参数数目可变处采用参数的方法参数。也就是说。使用params可以自动把你传入的值按照规则转换为一个新建的数组。
在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
3. 方法的分类
C#中方法分为静态方法和非静态方法,
从一个方法声明中是否有static来判断是否是静态方法;
静态方法:
当一个静态方法去调用另一个静态方法时,直接使用类名进行调用。
非静态方法:
当一个静态方法去调用另一个非静态方法时,需要实例化非静态方法的名称,然后才可以进行调用。
4. 方法的重载
重载的含义:
就是在同一个作用域内,可以声明几个功能类似的同名函数。调用时根据不同的实参列表选择相应的函数。
重载的特点:
函数名相同,参数列表不同
参数列表不同主要表现在参数个数的数据类型不同。在调用重载的方法时系统是根据所传递参数的不同判断用的是那个方法
方法的几个版本有不同的签名(即 ,方法名相同,但参数的个数和/或类 型不同)。 为了重载方法,只 需声明同名但参数个数或类型不同的方法即可
5. Main 方法
C# Main方法是 C# 控制台应用程序或窗口应用程序的入口点。应用程序启动时,C# Main 方法是第一个调用的方法。
C# 中的Main()方法首字母必须大写,如果首字母小写就会产生编译错误,编译失败。
C# Main方法有以下几条准则:
Main()方法在C#里非常特殊,它是编译器规定的所有可执行程序的入口点。由于其特殊性,对Main()方法有以下几条准则:
a) Main()方法必须封装在类或结构里来提供可执行程序的入口点。C#采用了完全的面向对象的编程方式,但C#中不可以有像C++那样的全局函数。
b) Main()方法必须为静态方法(static),这允许C#不必创建实例对象即可运行程序。
c) Main()方法的保护级别没有特殊要求, public、protected、private等都可以,但一般都指定其为public。
d) Main()方法名的第一个字母要大写,否则将不具有入口点的语义(C#是大小写敏感的语言)。
e) Main()方法的参数只有两种形式:无参数和string 数组表示的命令行参数,即static void Main()或static void Main(string[]args) ,后者接受命令行参数。一个C#程序中只能有一个Main()函数入口点。其他形式的参数不具有入口点语义,C#不推荐通过其他参数形式重载Main()函数,这会引起编译警告。
f) Main()函数返回值只能为void(无类型)或int(整数类型)。