【问题标题】:What is a "public" keyword , is it a type?什么是“public”关键字,它是一种类型吗?
【发布时间】:2012-04-01 15:48:28
【问题描述】:

According to Eric“C# 中的类型是遵循某些代数规则的数学实体”。

现在的问题是 c# 中的“public”关键字是什么(除了 public 是在 class 、 field 和 delegate 上使用的关键字的用法,外部世界的可访问性被定义为可访问)?

类似的问题可以是什么是“var”关键字,它是 c# 中的某种类型吗?

如果它们是类型,那么它们遵循什么代数规则?

编辑:可能是这个问题被误解了,我被禁止发布这个问题。 期待有人解除禁令。 当我读到“一切都是用任何语言输入”时,我感到很困惑

谢谢。

【问题讨论】:

  • 您似乎已经回答了自己的问题。
  • 花一点力气在谷歌上搜索或阅读任何 C# 书籍的第 1 章都会回答这些问题。
  • 如果您有任何推理导致“public”成为一种类型,请详细说明。
  • 我们不能说 var 或 public 是一个类型,因为它们不是类型!因此,它们不遵循代数规则。
  • 命名空间、访问修饰符、“类”关键字、对象实例、委托实例、事件:不是类型。类,“对象”类,委托类型:类型。

标签: c# oop


【解决方案1】:

public 实际上只是一个访问修饰符,如您所知,用于类、字段等。

另一方面,var 关键字是“无论哪种类型的语句都在右侧返回”的快捷方式。这实际上只是编译器糖果,因为它将在编译期间解析为具体类型(例如Int32)。

编辑:如果您对什么是类型和什么不是类型感兴趣,那么您可能想看看http://msdn.microsoft.com/en-us/library/3ewxz6et.aspx。它将明确回答问题的第一部分。

【讨论】:

  • 但是 "Var" 是 c# 中的一种类型吗?
  • @dnkulkarni 没有。 var 不是类型。
  • 就像 phoog 说的,事实并非如此。它是解析为具体类型的别名(即右侧的那个)。如果你写var number = 42,那么它等价于int number = 42number 的类型是Int32,在这两种情况下——它只取决于右边的语句。 (因此,int 也是解析为 Int32 类型的关键字)
  • (更令人困惑的是,dynamic 似乎表现得像 var 但确实是一个类型;不同之处在于 dynamic 是一个特殊的运行时评估类型,而 var 已解析并在您编写结束分号后立即钉入代码中。)
【解决方案2】:

Public这个词是一个访问修饰符,它定义了一个对象或一个类的可访问性。 公开的-它是指它是可用的。

【讨论】:

    猜你喜欢
    • 2016-08-09
    • 2011-06-08
    • 2013-03-21
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 2018-09-15
    • 2012-01-07
    • 1970-01-01
    相关资源
    最近更新 更多