Tag: as operator

什么时候应该在C#中使用as关键字

当你想在大多数时候想要改变类型时,你只想使用传统的演员表。 var value = (string)dictionary[key]; 这很好,因为: 它很快 如果出现问题,它会抱怨(而不是给对象是空的例外) 那么什么是使用的好例子, as我无法真正找到或想到完全适合它的东西? 注意:实际上我认为有时候编译器会阻止使用演员as作品(generics相关?)。

为什么我不能在结构中使用as关键字?

我定义了以下结构: public struct Call { public SourceFile caller; public SourceFile callee; public Call(SourceFile caller, SourceFile callee) { this.caller = caller; this.callee = callee; } } 稍后,我将其分配给另一个对象的Tag属性: line.Tag = new Call(sf1, sf2); 但是当我尝试像这样检索Tag属性时, Call call = line.Tag as Call; Visual Studio提供以下编译时错误: 必须在引用类型或可空类型中使用运算符 那是什么意思? 我该如何解决?