クラスが次のインターフェースを一度に実装できるかどうか、誰かがアドバイスできるかどうか疑問に思っていますか?
interface a1
{
int mycount;
}
interface a2
{
string mycount;
}
interface a3
{
double mycount;
}
クラスが次のインターフェースを一度に実装できるかどうか、誰かがアドバイスできるかどうか疑問に思っていますか?
interface a1
{
int mycount;
}
interface a2
{
string mycount;
}
interface a3
{
double mycount;
}
インターフェイスはどれもコンパイルされません。それらはメソッドであり、フィールドではないと仮定します。
競合するメンバー名を持つ複数のインターフェイスを実装する唯一の方法は、明示的な実装を使用することです。
interface a1
{
int mycount();
}
interface a2
{
string mycount();
}
class Foo : a1, a2
{
int a1.mycount() { ... }
string a2.mycount() { ... }
// you can _only_ access them through an interface reference
// even Bar members need to typecast 'this' to call these methods
void Bar()
{
var x = mycount(); // Error, won't compile
var y = (this as a2).mycount(); // Ok, y is a string
}
}