访问修饰符(如public)和关键字(如virtual)可自定义类或属性的行为。所以他们的行为类似于属性。但他们内部如何运作?他们是否会调用.Net类库中的任何代码或任何属性?
答案 0 :(得分:4)
不,public
是access modifier。 Virtual
是您正确指出的关键字,但两者都没有特别引用任何.NET库。它们没有引用任何属性,因此将它们称为属性是不正确的。 Attributes明显不同。
他们内部如何运作?
请参阅上面提供的链接。
他们是否会调用.Net类库中的任何代码或任何属性?
不,如前所述,它们与属性明显不同,并且与任何.NET库无关。
答案 1 :(得分:3)
不,分别告诉C#编译器如何在可访问性和继承方面处理该方法。
它们与.Net类库无关。此外,“属性”一词在C#的上下文中具有非常特定的含义,它们与这些关键字无关。
答案 2 :(得分:1)
答案 3 :(得分:1)
他们是语言的一部分。它们被称为keywords
,由语言保留,并将根据它们的作用在编译器中进行明确解析。它们是保留的,所以你不能做这样的事情:
User public = new User();
在这里我使用“public”关键字作为变量名,这是C#语法的非法。如果发现关键字使用不当,编译器将无法编译您的代码。 (通常在IDE中,如果出现错误,编译器甚至不会被调用)
有一点需要注意的是,他们不是运营商。 (例如+ - =)。在许多方面,运算符可以被重载(您可以定义它们如何改变数据)。在C#中(我不能担保其他语言),关键字不能超载。
编程语言中的keyword
通常用于告诉编译器如何处理特定上下文中的特定代码段。使用某些关键字的一些效果比其他关键字更明显。有点像这个代码正在做什么的暗示(在你的情况下,它的保护级别是什么)。每个keyword
都有自己的规则。例如,LINQ有自己的运算符,例如as
,where
,select
,不能像public
,protected
和private
那样使用。
有关C#中关键字的更多信息,请查看以下内容:
答案 4 :(得分:1)
public 关键字是对编译器的指令,称为访问修饰符。这意味着您希望公开访问某个类型或成员,即以不受限制的方式访问。
微软在这里描述得非常好:
http://msdn.microsoft.com/en-us/library/yzh058ae(v=vs.80).aspx
virtual 关键字是编译器的另一条指令。它是一种与 public 不同的修饰符。它与访问无关。它表示您打算能够覆盖派生类中给定方法/属性的行为。
微软在这里有一个很好的描述:
http://msdn.microsoft.com/en-us/library/9fkccyh4(v=vs.71).ASPX
它们都不以任何方式与属性相关,这完全是一个不同的概念。它们在这里描述: