相关疑难解决方法(0)

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

我定义了以下结构:

public struct Call
{
    public SourceFile caller;
    public SourceFile callee;

    public Call(SourceFile caller, SourceFile callee)
    {
        this.caller = caller;
        this.callee = callee;
    }
}
Run Code Online (Sandbox Code Playgroud)

稍后,我将它分配给另一个对象的Tag属性:

line.Tag = new Call(sf1, sf2);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试像这样检索Tag属性时,

Call call = line.Tag as Call;
Run Code Online (Sandbox Code Playgroud)

Visual Studio提供以下编译时错误:

必须在引用类型或可空类型中使用运算符

那是什么意思?我该如何解决?

.net c# type-systems casting as-operator

23
推荐指数
3
解决办法
1万
查看次数

标签 统计

.net ×1

as-operator ×1

c# ×1

casting ×1

type-systems ×1