const,只读的,静态三者怎么在c#中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
理解const
const常用来定义一个常量,什么意思呢?就是这个常量在你程序的生命周期内都不会被改变,因此,必须在声明常量时为其赋值,从技术角度上来说:这个常量值又被称为编译时值,用常量定义的变量又被称为编译时常量,值得注意的是:这个常量是不可变的,也就是一旦被定义好之后不可以对其进行修改。
下面的代码片段展示了如何使用常量去定义这个编译时常量。
const string connectionString =,“Specify your database connection string 这里!”
一定要记住,常量必须在定义的时候给它赋值,同时也要记住不可以用常量定义对象类型,因为它只支持c#的基元类型,比如:整数,浮点数、字符、布尔值和字符串,接下来通过一个例子来了解以下为啥不能用对象,考虑下面类的作者。
, public class 作者 ,{ public 才能int Id {组,得到,,,} public 才能string FirstName {组,得到,,,} public 才能string LastName {组,得到,,,} public 才能string Address {组,得到,,,} 以前,}>如果用常量将作者定义为常量的话,编译器肯定是不同意的,如下图:
, public class DbManager ,{ public 才能readonly string  connectionString =癝pecify your database connection string 这里!”; ,, public 才能;DbManager () {才能 ,,connectionString =,“你还要reassign a value 这里!”; ,,} ,, public 才能;void 重新分配() {才能 ,,connectionString =,“却;能够is not allowed"; ,,} 以前,}>
上面的代码会编译报错,错误信息如下:
, public class 效用 ,{ public 才能static void  SomeMethod () {才能 ,,//Write your code 这里 ,,} 以前,}>
你不可以通过类实例去调用,否则编译器是不会放行的,如下图:
Utility.SomeMethod ();
同样的规则也适用于类中的属性和字段,要想引用类中的静态成员,参考如下语法:
ClassName.Member;
或者
ClassName.Member ();
构造函数也可以是静态的,它通常用于初始化类中的静态成员,但要注意静态构造函数中不接受任何参数。
总结
使用常量,只读的,静态的一些经验法则如下:
const
如果变量在应用程序的生命周期内不会被改变,请用常量。
只读的
如果你不确定这个变量后期是否要被修改,但又不希望其他的类碰它,请用只读的。
静态
如果你希望类成员是属于类型而不是类型的实例,请用静态的。