静态关键字static
发布网友
发布时间:2022-05-01 08:23
我来回答
共4个回答
热心网友
时间:2022-06-26 17:49
static(C# 参考)
使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员。static 修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。例如,下面的类声明为 static,并且只包含 static 方法。
static class CompanyEmployee
{
public static string GetCompanyName(string name) { ... }
public static string GetCompanyAddress(string address) { ... }
}
备注
1、常数或者类型声明隐式地是静态成员。
2、不能通过实例引用静态成员。然而,可以通过类型名称引用它。例如,请考虑以下类:
public class MyBaseC
{
public struct MyStruct
{
public static int x = 100;
}
}
3、若要引用静态成员 x,请使用完全限定名(除非可从相同范围访问):
MyBaseC.MyStruct.x
4、尽管类的实例包含该类所有实例字段的单独副本,但每个静态字段只有一个副本。
5、不可以使用 this 来引用静态方法或属性访问器。
6、如果对类应用 static 关键字,则该类的所有成员都必须是静态的。
7、类(包括静态类)可以有静态构造函数。在程序开始和实例化类之间的某个时刻调用静态构造函数。
用static关键字符标识的程序元素是静态的,不用static标识的程序元素是非静态.两者的区别在于:静态
的东西是在类型加载初始时初始化的,并且与类相关.非静态东西一般放在实例的构造函数中初始化,它是
与特定类的实例相关的.
static声明的对象实体,可以在软件运行的整个过程中存在,
而auto声明的对象实体,只在方法中存活,而不会存在于整个软件的生命周期。
解释说明1:
static变量可以不必实例化直接使用.
比如在类中
class Parameters
{
public static string user="aa";
}
在另一个类中
class User
{
string username=Parameter.user;
可以直接使用user
}
用static关键字符标识的程序元素是静态的,不用static标识的程序元素是非静态.两者的区别在于:静态
的东西是在类型加载初始时初始化的,并且与类相关.非静态东西一般放在实例的构造函数中初始化,它是
与特定类的实例相关的.
解释说明2:
静态变量
当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有
通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。
有时候,我们希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存
空间里只有一份,例如所有的中国人都有国家名称,每一个中国人都共享这个国家名称,不必在每一个
中国人的实例对象中都单独分配一个用于代码国家名称的变量。
静态方法
我们有时也希望不必创建对象就可以调用某个方法,换句话说也就是使该方法不必和对象绑定在
一起。要实现这样的效果,只需要在类中定义的方法前加上static关键字就可以了,我们称这种方法为
静态成员方法,还可以在类的非静态成员方法中象访问其他静态方法一样去访问这个静态方法,
注意:在静态方法里只能直接调用同类中其他的静态成员(包括变量和方法),而不能直接访问类中的
非静态成员。这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可以使用,而静态方
法在使用前不用创建任何对象.
热心网友
时间:2022-06-26 17:49
关键字static代表是静态方法,如果Main方法里面要调用外面的方法或者函数必须是静态的方法或者是函数。C#中就连static void Main(string[] args)要访问这个方法外面的变量都得是静态的。Main函数中访问其它类,就不用加Static.Main函数中访问其它类,就不用加Static.
热心网友
时间:2022-06-26 17:49
static是属于类的,无需要实例化.
比如Student类有一个static属性Number
Student.Number就可以直接使用了.而且可以随时的读写这个Number值.
但如果Student stu=new Student();stu.Number将会出错.
一般全类公用的数据会被声明为static类型.
热心网友
时间:2022-06-26 17:50
全局变量