这是我被问到的一个面试问题。我不确定答案。
在C#中const和静态成员变量都可以:
A)在类的静态构造函数,静态方法或实例方法中设置 B)第一次初始化课程后的变化 C)只能在实例构造函数中设置 D)在没有班级实例的情况下访问 E)由公共财产的集合访问者设置。
我选择了" A"即使我不确定他们的意思。我不知道是否选择A或E.因为我已经没时间了,所以我选择了A.我可能应该选择E。
A)我的问题在于它说"实例方法。"
B)他们不会改变 - 错误
C)静态方法或类的构造函数是否为" Instance Constructor?"我知道你可以有一个静态构造函数
D)如何在没有实例的情况下访问常量? - 假
E)不确定。我想这可能是真的。
有人可以解释一下吗?谢谢!
答案 0 :(得分:4)
在C#中const和静态成员变量都可以:
A)在类的静态构造函数,静态方法或实例方法中设置 B)第一次初始化课程后的变化 C)只能在实例构造函数中设置 D)在没有班级实例的情况下访问 E)由公共财产的集合访问者设置。
A)您无法设置常量,您只能定义它。您可以在任何可以定义变量的地方定义常量,但是 set 这个词意味着这个选择是错误的。
B)你绝对不能改变一个常数,所以它不是B。
C)不正确,如上(A)
D)好的,你可以写MyClass.MyConst
和MyClass.MyStatic
E)不正确,您无法更改常量。
所以答案是D。
答案 1 :(得分:2)
答案是D.任何公共,受保护或内部的常量或静态成员都可以在没有实例的类外访问。
将const视为值类型static readonly
变量。另外,将它们标记为const允许编译在编译时使用优化。
答案 2 :(得分:1)
答案是D。
可以在没有实例的情况下访问静态成员或属性和const。
即
var x = Foo.StaticProperty;
将const视为无法在运行时更改的静态值。
E不正确,因为您根本无法设置const。
答案 3 :(得分:1)
答案的快速细分:
A)错误,因为const
未在静态构造函数中设置。
B)错误,在声明后无法更改const
的值
C)False,再次声明后无法设置const
。您可以在实例方法(和ctors)中设置static
个变量,但一旦定义它就无法更改const
。
D)True - 您不需要该类的实例来访问它们。
E)错误,再次,const
s无法更改......