C# 中类的成员有哪些?

注意是C#哦,需要对每个成员进行简单描述

1、成员分类:

(1)、时间:

类的成员或者是静态成员(static member)----属于类。

实例成员(instance member)----属于对象。

(2)、空间:

属性、方法、索引、代理、事件、嵌套类、字段。

2、成员的可访问性:

类的每个成员都有关联的可访问性,它控制能够访问该成员的程序文本区域。

3、成员的修饰符:

abstract、sealed、delegate、const、event、extern、override、readonly、static、virtual。

1、类简介:

类(class)是C#类型中最基础的类型。类是一个数据结构,将状态(字段)和行为(方法和其他函数成员)组合在一个单元中。类提供了用于动态创建类实例的定义,也就是对象(object)。类支持继承(inheritance)和多态(polymorphism),即派生类能够扩展和特殊化基类的机制。

2、使用类声明可以创建新的类:

类声明以一个声明头开始,其组成方式如下:先是指定类的特性和修饰符,后跟类的名字,基类(如果有的话)的名字,以及被该类实现的接口名。声明头后面就是类体了,它由一组包含在大括号({})中的成员声明组成。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-19
类是 C# 中功能最为强大的数据类型。像结构一样,类也定义了数据类型的数据和行为。然后,程序员可以创建作为此类的实例的对象。与结构不同,类支持继承,而继承是面向对象编程的基础部分很多 去这里面看看 吧 http://msdn2.microsoft.com/zh-cn/library/x9afc042(VS.80).aspx
第2个回答  2013-08-19
方法 变量
第3个回答  2016-01-04
类(class)是C#类型中最基础的类型。类是一个数据结构,将状态(字段)和行为(方法和其他函数成员)组合在一个单元中。类提供了用于动态创建类实例的定义,也就是对象(object)。类支持继承(inheritance)和多态(polymorphism),即派生类能够扩展和特殊化基类的机制。
使用类声明可以创建新的类。类声明以一个声明头开始,其组成方式如下:先是指定类的特性和修饰符,后跟类的名字,基类(如果有的话)的名字,以及被该类实现的接口名。声明头后面就是类体了,它由一组包含在大括号({})中的成员声明组成。
下面是一个名为Point的简单类的声明:
public class Point
{
public int x, y;

public Point(int x, int y){
this.x = x;
this.y = y;
}
}
使用new运算符创建类的实例,它将为新实例分配内存,调用构造函数初始化实例,并且返回对该实例的引用。下面的语句创建两个Point对象,并且将那些对象的引用保存到两个变量中:
Point p1 = new Point(0, 0);
Point p2 = new Point(10, 20);
当不再使用对象时,该对象所占的内存将被自动回收。在C#中,没有必要也不可能显式地释放对象。
1.成员分类:
(1)时间:
类的成员或者是静态成员(static member)----属于类。
实例成员(instance member)----属于对象。
(2)空间:
属性。
方法。
索引。
代理。
事件。
嵌套类。
字段。
2.成员的可访问性:
类的每个成员都有关联的可访问性,它控制能够访问该成员的程序文本区域。
public :访问不受限制。

protected :访问仅限于包含类或从包含类派生的类型。

internal :访问仅限于当前程序集。

protected internal :访问仅限于从包含类派生的当前程序集或类型。

private :访问仅限于包含类。

3.成员的修饰符:

abstract:指示该方法或属性没有实现。

sealed:密封方法。可以防止在派生类中对该方法的override(重载)。不是类的每个成员方法都可以作为密封方法密封方法,必须对基类的虚方法进行重载,提供具体的实现方法。所以,在方法的声明中,sealed修饰符总是和override修饰符同时使用。

delegate:委托。用来定义一个函数指针。C#中的事件驱动是基于delegate + event的。

const:指定该成员的值只读不允许修改。

event:声明一个事件。

extern:指示方法在外部实现。

override:重写。对由基类继承成员的新实现。

readonly:指示一个域只能在声明时以及相同类的内部被赋值。

static:指示一个成员属于类型本身,而不是属于特定的对象。即在定义后可不经实例化,就可使用。

virtual:指示一个方法或存取器的实现可以在继承类中被覆盖。

new:在派生类中隐藏指定的基类成员,从而实现重写的功能。 若要隐藏继承类的成员,请使用相同名称在派生类中声明该成员,并用 new 修饰符修饰它。

4.方法
方法(method)是一种用于实现可以由对象或类执行的计算或操作的成员。静态方法(static method)只能通过类来访问。实例方法(instance method)则要通过类的实例访问。
(1).方法的参数
参数用于将值或者引用变量传递给方法。当方法被调用时,方法的参数译注5从指定的自变量(argument)译注6得到它们实际的值。C#有4种参数:值参数、引用参数、输出参数和参数数组。
值参数(value parameter)用于输入参数的传递。值参数相当于一个局部变量,它的初始值是从为该参数所传递的自变量获得的。对值参数的修改不会影响所传递的自变量。
引用参数(reference parameter)用于输入和输出参数的传递。用于引用参数的自变量必须是一个变量,并且在方法执行期间,引用参数和作为自变量的变量所表示的是同一个存储位置。引用参数用ref修饰符声明。下面的示例展示了ref参数的使用:
using System;

class Test

{

static void Swap(ref int x, ref int y) {

int temp = x;

x = y;

y = temp;

}

static void Main() {

int i = 1, j = 2;

Swap(ref i, ref j);

Console.WriteLine("{0} {1}", i, j); //输出 "2 1"

}

}
输出参数(output parameter)用于输出参数的传递。输出参数类似于引用参数,不同之处在于调用方提供的自变量初始值无关紧要。输出参数用out修饰符声明。下面的示例展示了out参数的使用:
using System;

class Test {
static void Divide(int x, int y, out int result, out int remainder) {
result = x / y;
remainder = x % y;
}
static void Main() {
int res, rem;
Divide(10, 3, out res, out rem);
Console.WriteLine("{0} {1}", res, rem); //输出 "3 1"
}
}
参数数组(parameter array)允许将可变长度的自变量列表传递给方法。参数数组用params修饰符声明。只有方法的最后一个参数能够被声明为参数数组,而且它必须是一维数组类型。System.Console类的Write和WriteLine方法是参数数组应用的很好的例子。它们的声明形式如下:
public class Console
{
public static void Write(string fmt, params object[] args) {...}

public static void WriteLine(string fmt, params object[] args) {...}
...
}
(2)虚拟方法、重写方法和抽象方法
若一个实例方法的声明中含有virtual修饰符,则称该方法为虚拟方法(virtual method)。若其中没有virtual修饰符,则称该方法为非虚拟方法(nonvirtual method)。
在一个虚拟方法调用中,该调用所涉及的实例的运行时类型(runtime type)确定了要被调用的究竟是该方法的哪一个实现。在非虚拟方法调用中,实例的编译时类型(compile-time type)是决定性因素。
虚拟方法可以由派生类重写(override)译注7实现。当一个实例方法声明中含有override修饰符时,该方法将重写所继承的相同签名的虚拟方法。虚拟方法声明用于引入新方法,而重写方法声明则用于使现有的继承虚拟方法专用化(通过提供该方法的新实现)。
抽象(abstract)方法是没有实现的虚拟方法。抽象方法的声明是通过abstract修饰符实现的,并且只允许在抽象类中使用抽象方法声明。非抽象类的派生类需要重写抽象方法。
(3)方法重载
方法重载(Method overloading)允许在同一个类中采用同一个名称声明多个方法,条件是它们的签名是惟一的。当编译一个重载方法的调用时,编译器采用重载决策(overload resolution)确定应调用的方法。重载决策找到最佳匹配自变量的方法,或者在没有找到最佳匹配的方法时报告错误信息。下面的示例展示了重载决策工作机制。

5.变量(C#中类的变量称为字段。类的public变量称为类的公共字段)
C#要求局部变量在其值被获得之前明确赋值(definitely)。例如,假设前面的变量i的声明没有包含初始值,那么,在接下来对i的使用将导致编译器报告错误,原因就是i在程序中没有明确赋值。

6.事件
事件是使对象或类能够提供通知的成员。事件的声明与字段的类似,不同之处在于事件声明包含一个event关键字,并且事件声明的类型必须是委托类型。
在包含事件声明的类中,事件可以像委托类型的字段一样使用(这样的事件不能是 abstract,而且不能声明访问器)。该字段保存了一个委托的引用,表示事件处理程序已经被添加到事件上。如果尚未添加任何事件处理程序,则该字段为null。
List类声明了名为Changed的单个事件成员,Changed事件表明有一个新项添加到事件处理程序列表,它由OnChanged虚拟方法引发,它首先检查事件是否为null(意思是没有事件处理程序)。引发事件的通知正好等价于调用事件所表示的委托——因此,不需要特殊的语言构件引发事件。
客户通过事件处理程序(event handler)响应事件。使用“+=”运算符添加或者使用“-=”移除事件处理程序。下面的示例添加一个事件处理程序到List类的Changed事件:
using System;

class Test
{
static int changeCount;
static void ListChanged(object sender, EventArgs e) {
changCount++;
}
static void Main() {
List names = new List();
names.Changed += new EventHandler(ListChanged);
names.Add("Liz");
names.Add("Martha");
names.Add("Beth");
Console.WriteLine(changeCount); //输出 "3"
}
}
7. 析构函数
析构函数(destructor)是用于实现析构类实例所需操作的成员。析构函数不能带参数,不能具有可访问性修饰符,也不能被显式地调用。垃圾回收期间会自动调用所涉及实例的析构函数。 在类的继承中,类的析构函数是不会被继承的。

垃圾回收器在决定何时回收对象和运行析构函数方面采取宽松的策略。特别指出,析构函数的调用时机是不确定的,并且析构函数可能运行在任何线程上。由于这些或者其他原因,只有没有其他可行的解决方案,类才实现析构函数。

8.构造方法(constructor)
构造函数分为实例构造函数,静态构造函数。
(1)实例构造函数:用于实例成员的初始化,可以访问静态成员和实例成员。
如:
public Class1
{
......
}
(2)静态构造函数:用于静态成员的初始化,只可以访问静态成员。类的静态成员属于类所有,不必生成实例就可以访问。它是在载入包含类的应用程序时创建的,通常,静态变量是在定义时就赋初始值的。
如:
public static Class1()
{
......
}

9.常量:其值是在编译时设定的,必须是数值文字。默认状态下常量是静态的(关健字:const)。
如:
public class Class1
{
public const double pi = 3.1415;
}

10.属性
类的属性由一个protected(也可以是private)字段和get和set方法构成:
public class Class1
{
private string ip;//字段
{
get
{
return ip;
}
set
{
ip=value;
}
};

}
只读属性是指省略set方法的属性,只读属性只能读取,不能设置。
属性也可以用限定符virtual,override和abstract修饰,功能同其他类的方法。
属性有一个用处称为懒惰的初始化(lazy initialization)。即在需要类成员时才对它们进行
初始化。如果类中包含了很少被引用的成员,而这些成员的初始化又会花费大量的时候和系统
资源的话,懒惰的初始化就很有用了。本回答被网友采纳

C# 中类的成员有哪些?
1、成员分类:(1)、时间:类的成员或者是静态成员(static member)---属于类。实例成员(instance member)---属于对象。(2)、空间:属性、方法、索引、代理、事件、嵌套类、字段。2、成员的可访问性:类的每个成员都有关联的可访问性,它控制能够访问该成员的程序文本区域。3、成员的修饰符:abstra...

C#中的类是什么?
类是面向对象编程的基本单位,是一种包含数据成员、函数成员和嵌套类型的数据结构。类的数据成员有常量、域和事件。函数成员包括方法、属性、索引指示器、运算符、构造函数和析构函数。类和结构同样都包含了自己的成员,但它们之间最主要的区别在于:类是引用类型,而结构是值类型。类支持继承机制,通过继承...

在C#中类的定义是什么?
C#的类是一种对包括数据成员,函数成员和嵌套类型进行封装的数据结构。其中数据成员可以是常量,域。函数成员可以是方法,属性,索引器,事件,操作符,实例构建器,静态构建器,析构器。我们将在“第五讲 构造器与析构器”和“第六讲 域 方法属性与索引器”对这些成员及其特性作详细的剖析。除了某些导...

属性是类的数据成员吗?什么是方法?C#允许在类定义外部声明方法吗?
c#中的类是一种数据结构,一般成员包括:数据成员、函数成员、嵌套类型等。声明语法: [属性 类修饰] class 类名称 : [基类规范] 中括弧中的元素为可选元素.例如: public partial class _Default : System.Web.UI.Page 类修饰符包括:new:适用于嵌套类,被修饰的类会把继承下来的同名成员隐藏.public...

如何理解C#里面一个类的成员、构造函数、方法、属性、事件
他们上面其实说的多少正确了。类:具有相同属性一组对象集合。就他们说的,人类。就是一个类,下面有很多子类,男人、女人、老人、小孩。构造函数 :类被初始化时所创建要分配内存空间、或者初始化变量等等。说明白点,就是把类加载到内存里以便调用。方法:比如,这个杯子可以用来做什么,或者说处理某个...

c#类、结构或接口成员声明中的标记“(”无效
类是由方法成员,数据成员(变量、常量、属性、索引)等组成,并不包含类的行为!因为它是写在函数中! 方法(函数)的责任是用来实现类的行为,字段存储类的状态 。 而上面那句话(Console.WriteLine("a");)是实现这个类的行为,所以要写在方法中!

C#的类有几种呢
知道小有建树答主 回答量:325 采纳率:0% 帮助的人:130万 我也去答题访问个人页 展开全部 C#类的分类:静态类、实例类、嵌套类、结构、简单的抽象类、简单的密封类静态类就是在class关键字前加入了static关键字,基本语法是static Class ClassName{} 。静态类有几个特点:1.静态类只能包括静态成员2.类本...

c# 什么是类、对象、方法、属性、字段、函数!!!
类的九大成员:字段( Field )属性( Property )方法( Method )构造函数( Constructor )析构函数( Destructor )索引器( Indexer )事件( Event )运算符( Operator )嵌套类(Nested class )五种访问修饰符:private:仅在类的内部访问 public:没有访问限制 internal:在同一个程序集内访问 protected:类...

C# 面向对象 静态类和静态成员
在C#中,静态类和静态成员是面向对象编程中的重要概念。它们与非静态成员不同,静态成员属于类型本身而非特定对象,且不能通过实例引用。静态类不能实例化,只能通过类名直接访问其成员,如常数和类型声明。静态类可以有静态构造函数,在程序启动时或类被实例化前执行。静态成员的特点包括:仅包含静态方法...

C#中类是什么,其他编程里有类么?
理论上”的对象,也就是说,它为对象提供蓝图,但在内存中并不存在。从这个蓝图可以创建任何数量的对象。从类创建的所有对象都有相同的成员:属性、方法和事件。但是,每个对象都象一个独立的实体一样动作。例如,一个对象的属性可以设置成与同类型的其他对象不同的值。其他的编程中也有类!

相似回答