1
我想知道如果有人可以建議,如果一個類可以一次實現以下接口?一個類可以實現具有相同datamember名稱但不同類型的多個接口嗎?
interface a1
{
int mycount;
}
interface a2
{
string mycount;
}
interface a3
{
double mycount;
}
我想知道如果有人可以建議,如果一個類可以一次實現以下接口?一個類可以實現具有相同datamember名稱但不同類型的多個接口嗎?
interface a1
{
int mycount;
}
interface a2
{
string mycount;
}
interface a3
{
double mycount;
}
你的接口都不會編譯,我假設它們是方法而不是字段。
實現與衝突的membernames多個接口的唯一方法是通過使用顯式實現:
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
}
}
謝謝Henk。這是假設您已將數據成員更改爲方法,並且我知道此實現將起作用。 我的問題是,在最近的一次採訪中,我遇到了同樣的問題,並且我的答案被拒絕了 - 來自不同界面的同名數據成員不可能繼承到同一個類中。所以我想確認這是正確的。面試官因爲某種原因認爲不然,這讓我感到十分困惑。 – Alag20 2013-05-11 09:53:55
你有**試過** – 2013-05-11 09:20:48
這些特性,而不是場吧? – 2013-05-11 09:28:30
這些是數據成員而不是方法。 – Alag20 2013-05-11 09:53:18