c# - 语法所依赖的 C# 中的类型是什么?

标签 c# syntax clr

<分区>

Possible Duplicate:
Which parts of C# .NET framework are actually parts of the language?

我知道它用

  • System.Type 就像 typeof(foo)
  • System.Attribute 因为您可以使用 [Foo] 而不是 [FooAttribute]
  • System.String 因为您可以编写 "bla".ToLower()
  • System.Exception 因为 throw obj 仅适用于此类型或继承类型。
  • System.Array 显然
  • 和所有内置值类型 intdecimalbool 等。

还有其他的吗?

最佳答案

这是一个很难的问题。好吧,我将从您可以在源代码中编写的不需要在运行时求值的文字值开始:

  • 字符串 "String"
  • 字符 'c'
  • 真正的值(value)观 decimal , float , double
  • 积分值类型 int , uint , long , ulong ( shortushortbytesbyte 也是受支持的关键字,但与这四个不同,它们需要转换)
  • bool ( true | false )(也隐含地用于评估,例如 a == bc < d )
  • null文字(实际上不是类型,但出于完整性考虑,我将其放在这里,因为它可以表示任何和所有引用类型。)

现在,语言构造:

  • 数组 bool[] char[] float[] etc(支持上面显示的所有类型,除了null和所有用户定义的类型
  • 可为空 bool? char? float? (框值类型以允许额外值null)
  • typeof(T) ——如你所说,返回Type,所以c#语言支持Type类型。此外,对于每个对象引用或值类型,您都可以对其调用 GetType() 来检索相同的东西 - 这是从 object 继承的。
  • IEnumerable , IEnumerator , IEnumerable<T>IEnumerator<T> foreach 和查询表达式
  • System.Threading.Monitor对于 lock () 语句
  • Func<T> , Func<T1, T2, ... TN> , Action , Action<T> , Action<T1, T2, ... TN>对于 lambda 表达式。
  • IDisposable using() 语句的接口(interface)
  • Exception try 语句中的 catch (ExceptionClassType) {} 子句类。

当我想到它们时,我会更新更多。

关于c# - 语法所依赖的 C# 中的类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8926070/

相关文章:

java - 检查返回值是否不为空,如果是,则在一行中使用一个方法调用将其分配

c - 为什么 C 没有二进制文字?

vb.net - 动态代码执行 : String -> Runtime code VB.net

c# - 从 .Net 的角度看 Windows 服务的体系结构

c# - PHAntom JS 有 50% 的时间失败

c# - 我如何使用不同的提供商从 Acumatica ERP 发送短信?

c# - Visual Studio 2013 中 MVC 项目中的自动电子邮件

list - 序列语法糖([1..6])如何转换为实际的列表语法(1 :2:3. ..6)?

c# - 去除unbox_any的抖动逻辑

c# - CLR 检测到 Entity Framework 的无效程序