如何从界面获取值

时间:2011-07-27 12:24:51

标签: c# interface

我有这样的界面,

 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 &安培; ResourcePolicy = null我需要显示m_nullPolicy而不是m_nullString,这是exisitng代码

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;
                }}

我将如何实现这一目标

2 个答案:

答案 0 :(得分:2)

接口仅用作“必须像那样”,并且所有内容都必须保持不变。所以这是不可能的。

请参阅this作为接口内容的完整说明。

正如@Cipi所说,对你的主要问题发表评论,你可能不得不使用抽象类(see here

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;
    }
}

注意:对不起我的英语,我通常会说法语

答案 1 :(得分:0)

我认为您希望使用抽象类和接口来执行此操作。抽象类将实现接口并检查其值,而其他类只会继承抽象类...因此实现接口。