如何从接口获取值
本文关键字:获取 接口 | 更新日期: 2023-09-27 18:03:46
我有一个这样的界面,
public interface IResourcePolicy
{
string AgentVersion
{
get;
set;
}
ResourcePolicy ResourcePolicy
{
get;
set;
}
}
// implementation of AgentVersion only as of now i am showing
public string AgentVersion
{
get
{
return m_agentVersion;
}
set
{
m_agentVersion = value;
}
}
private string m_agentVersion = null;
在下面的代码中,我需要检查一个更多的条件,如m_agentVersion != null,我需要显示m_nullPolicy而不是m_nullString,这是现有的代码
public class ResourcePolicyConverter : StringConverter
{
private static string m_nullString = Managers.ControlStrings.GetString("ManagedDeviceWizard.None");
private static string m_nullPolicy = Managers.ControlStrings.GetString("ManagedDeviceWizard.UnknownPolicy");
if( value is ResourcePolicy )
{
return ((ResourcePolicy)value).Identifier;
}
else if( value == null )
{
return m_nullString;
}}
如何做到这一点
接口只能作为"必须这样"使用,并且所有内容必须保持不变。所以这是不可能的。
将此视为对什么是接口的完整解释。
正如@Cipi对你的主要问题的评论所说,你可能不得不使用抽象类来代替(见这里)
abstract class AgentVersionBase {
public string AgentVersion {
get {
return m_agentVersion;
}
}
private string m_agentVersion = string.Empty;
}
public class AgentVersion : AgentVersionBase {
public string aMethod() {
return base.AgentVersion;
}
}
注意:对不起我的英语,我通常说法语
我认为你想使用抽象类和接口来做到这一点。抽象类实现接口并检查接口值,其他类只继承抽象类。并因此实现接口