gpt4 book ai didi

c# - 接口(interface)特定属性

转载 作者:行者123 更新时间:2023-12-03 05:41:56 24 4
gpt4 key购买 nike

如何解决这个接口(interface)问题?我想我在这个特定的类中需要这个变量(以及其他一些变量)。

public interface Action
{
void execute();
}

public A:Action
{
public int misteriousNumber;

void execute()
{
int iUseMisteriousNumber = misteriousNumber;
}
}

public B:Action
{
void execute()
{
//I use nothing.
}
}

//Some Class...
static void Main(string[] args)
{
foreach(Action action in SecretRepositoryOfTheActions.actions)
{
if(action is A)
(SomeTypeOfCasting to A)action.misteriousNumber=13;
action.execute();
}
}

只有“A”类具有此属性,其他 Action 类没有使用什么来访问它(强制转换,而不是接口(interface)其他实现)?

最佳答案

你必须强制转换它,首先用 is 检查类型:

 foreach(Action action in SecretRepositoryOfTheActions.actions)
{
if(action is A)
((A) action).misteriousNumber = 13;
action.execute();
}

如果您只想处理A-对象(情况似乎并非如此):

 foreach(A a in SecretRepositoryOfTheActions.actions.OfType<A>())
{
a.misteriousNumber = 13;
a.execute();
}

关于c# - 接口(interface)特定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38714584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com