1
10
我想我看到了问题。DataRowCollection是非泛型的,因此编译器只知道它包含Object类型的对象。如果它是一个通用的数据结构,那么就可以工作了。 |
2
3
这是:
如预期的那样工作,它给了我在Visual Studio 2008中同时显示Bleh和Blah的IntelliSense。 你有什么东西吗 喜欢 或者,或者 确切地 那?可能还有其他事情比您显示的代码更让IntelliSense感到困惑。
回答实际问题。拼写出类型和使用
没有其他区别,编译器将在左侧选择与在右侧相同的类型。 编辑 谢谢 @Telos 为了指出一个区别,当使用var时,当然必须在声明时给变量一个值,因为右侧表达式的类型用于指示左侧变量的类型。拼写出类型时,当然可以选择不给它赋值。 |
3
2
我猜是这样的
规则
如果你认为
|
4
1
我尝试在一个控制台应用程序中用以下代码重现这个过程。
这按预期工作,IntelliSense是正确的,并且
Reflector
表明
我也在使用Visual Studio 2008 RTM。 |
5
1
DataTable.Rows返回实现InternalDataCollectionBase的DataRowCollection,后者反过来实现ICollection和IEnumerable。代码
将DataRowCollection中的每个项强制转换为DataRow。您可以通过将其更改为
它编译但抛出一个无效的castexception。
如果实现了DataRowCollection
|
6
0
我相信您在示例代码中没有提供足够的信息。我做了一个小程序来模仿你描述的行为:
但是输出清楚地表明var正在解析y类型,而不是x。 您确定您的函数返回一个y作为y引用,而不是x引用吗? |
7
0
它能正常工作。当编译器无法确定正确的数据类型时,它将对象类型设置为“对象”。 |
8
0
使用foreach关键字时,将通过IEnumerable接口访问DateRowCollection。用于访问数据行的特定方法称为current,并返回一个对象。所以var关键字查看当前方法的返回值来推断类型。 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |