Как взять значения из интерфейса - PullRequest
0 голосов
/ 27 июля 2011

У меня есть такой интерфейс,

 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, это существующий код

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 ]

2 голосов
/ 27 июля 2011

Интерфейс используется только как «Должен быть таким», и все должно оставаться неизменным. Так что это невозможно.

См. это как полное объяснение того, что такое интерфейс.

Как сказал @Cipi в качестве комментария к вашему основному вопросу, вам, возможно, придется использовать класс Abstract ( см. Здесь )

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

Примечание: простите за мой английский, я обычно говорю по-французски

0 голосов
/ 27 июля 2011

Я думаю, что вы хотите использовать абстрактный класс и интерфейс для этого.Абстрактный класс реализует интерфейс и проверяет его значения, а другой класс наследует только абстрактный класс ... и, следовательно, реализует интерфейс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...