1

这个类属性是我试图重构为接口的。

public class Stuff : IStuff {
    public int Number {
        get;
        protected internal set;
    }
}

Visual Studio 2008重构工具提取如下界面

// Visual Studio 2008's attempt is:
public interface IStuff {
    int Number { get; }
}

C# 编译器报错:

'Stuff.Number.set' adds an accessor not found in interface member 'IStuff.DataOperations'

(这是我遇到的少数几种情况之一,Visual Studio 生成的代码会导致不正确的编译情况。)

有没有直接的解决方案可以将这个属性提取到接口中,而不需要在类上进行不同的设置和获取成员/方法?

4

1 回答 1

2

我测试了以下内容:

class bla : Ibla {
    public int Blargh { get; protected internal set; }
}

interface Ibla {
    int Blargh { get; }
}

它工作得很好。您是否正确实现了接口?

于 2009-12-09T19:11:48.903 回答