|
|
1
14
有几个案例
还有其他的。在每种情况下 能够 只需在右侧强制转换表达式,以便编译器知道要使用什么-但在这种情况下,您最好直接声明变量。
|
|
|
2
11
这要看你怎么看。说真的! C#编译器对程序进行三种类型的分析,每个后续分析都使用前一种分析的结果。我们做的第一种分析是 分析;我们把文本转换成一系列的标记。假设你有
接下来的分析是 文法的 将标记组织成组形成“解析树”的分析。在这种情况下,令牌将被组织到这个树中(缩进表示树中的嵌套级别)
. 如果这是一个语法合法的程序,那么它就在我们期望的类型声明的地方。 但在这一点上,我们不知道“var”是指一个类型还是被用作关键字。这需要 语义的
在这一点上有两种可能性。第一种可能性是全局命名空间中有一个名为“var”的类、结构、枚举、接口或委托类型。(此程序片段中没有“using”指令,因此我们不必检查任何其他名称空间,并且类型不是分部的,因此我们不必检查任何其他类型声明)。我们搜索所有被引用程序集的全局命名空间,寻找一个名为“var”的类型。我们还对所有其他文件中的类型声明进行语义分析,再次查找名为var的类型。 如果我们找到一个,那么“var”指的就是那个类型。 如果我们没有找到一个,那么我们假设“var”被用作上下文关键字,它引入了一个隐式类型化的local。 所以,回答你的问题: ,代码片段“var”是一个标识符标记,上面写着“顺便说一下,这实际上可能是一个关键字”。 语法上 ,标记“var”是 . 语义上 当作用域中有一个称为var的类型时 ;如果没有这样的类型,并且“var”被用作本地声明的类型,则类型语法“var”不引用类型。更确切地说,它是编译器的一条指令,用于推断本地语言的实际类型。 |
|
|
3
0
两者兼而有之。从技术上讲,当使用var时,变量是强类型的,但是编译器确定类型。所以我想说,当你说“var是一种类型”时,你是最接近的。 |
|
|
4
0
变量 是一种类型,就像 是。。。但它到底是什么类型的??
例如
在编译时, 将替换为 一串 变量 作为程序员方便的简写,而不必编写
意思是一样的。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |