没有实现的C#类有效吗?

son*_*lis 4 .net c# class

我已经在现有代码库中绊倒了这个类:

[Serializable]
public class PillowFight
{
    public PillowFight(object providedObject);

    public object providedObject { get; }
    public Dictionary<string, PillowData> Properties { get; }

    public PillowData GetPillowByName(string pillowName);
    public void SetPillowValue(string pillowName, object value);
}
Run Code Online (Sandbox Code Playgroud)

我不希望这个编译因为构造函数,GetPillowByName和SetPillowValue上缺少实现,因为它不是抽象或接口.这有效吗?为什么要这样做,有什么好处?

Pat*_*man 12

不,它无效.在Visual Studio中使用'转到定义(F12)'函数时,您可能已经看到过这种情况.如果源位于另一个程序集中,它将仅显示轮廓,而不显示实际代码.

请参阅相应的dotnetfiddle(无法编译).

错误:

PillowFight.PillowFight(object)'必须声明一个body,因为它没有标记为abstract,extern或partial

  • 您通常可以通过正在使用的选项卡的标签判断是否属于这种情况 - VS将附加"[来自元数据]",Xamarin将说"程序集浏览器" (4认同)