3

保護されたメソッドがある場合、データ型が内部で宣言されているパラメーターを渡すことはできますか?

4

2 に答える 2

6

いいえ、(保護されたメンバーを持つ) 型自体が内部でない限り。消費者はそれを使用する方法がないため、内部型をパブリック/保護された API の一部にすることはできません。

ただし、パブリック インターフェイスを使用して型を抽象化することを検討できます。つまり、

public interface IFoo {}
internal class Foo : IFoo {}
public class Bar {
    protected void Test(IFoo foo) {}
}

ジェネリックはこれにも役立ちます。

protected void Test<T>(T foo) where T : IFoo { }
于 2008-12-21T13:31:22.693 に答える
1

保護されたメソッドを含むクラスが外部から見える場合はそうではありません。これは、一部の外部クラスがそのクラスから派生する可能性があり、パラメーターの型を知る必要があるためです。

于 2008-12-21T13:33:14.657 に答える