Класс интерфейса С# не виден

У меня проблема, когда компилятор не видит класс интерфейса правильно. У меня есть базовый класс, называемый Ctrl, и ряд производных классов, Ctrl_BUTTON, , и т. д. Некоторым, но не всем, необходимо иметь свойство Font, чтобы во время выполнения можно было легко проверить, поддерживает ли класс Fontимущество. Следовательно, у меня есть класс интерфейса, . Однако я получаю ошибку времени разработки:

«AppData.Ctrl_CHECKBOX» не содержит определения для «Font», и не удалось найти метод расширения «Font», принимающий первый аргумент типа «AppData.Ctrl_CHECKBOX» (вам не хватает директивы using или ссылки на сборку?)

Структура кода у меня есть.

учебный класс :

      namespace AppData
{
    public interface ICtrl_Font
    {
        Font Font { get; set; }
    }
}

использует ICtrl_Fontтаким образом (для ясности я вырезал ненужный код):

      namespace AppData
{
    public class Ctrl_CHECKBOX : Ctrl, ICtrl_Font
    {
        private Font _font = new Font("Microsoft Sans Serif", (float)8.25, FontStyle.Regular, GraphicsUnit.Point);

        public override Ctrl Clone()
        {
            Ctrl_CHECKBOX oCopy;

            try
            {
                oCopy = new Ctrl_CHECKBOX(base.Globals, base.Server, base.App, base.Frm);
                if (!base.Copy(oCopy)) throw new Exception(string.Format("Could not clone Ctrl class for {0} copy.", base.CtrlTypeCode));
                oCopy.DesignTimeValue = _designTimeValue;
                oCopy.Enabled = (_enabled.GetType() == typeof(Expression)) ? ((Expression)_enabled).Clone() : _enabled;
                oCopy.Font = new Font(_font.Name, _font.Size, _font.Style, GraphicsUnit.Point);
                oCopy.Text = (_text.GetType() == typeof(Expression)) ? ((Expression)_text).Clone() : _text;
                oCopy.Value = (_value.GetType() == typeof(Expression)) ? ((Expression)_value).Clone() : _value;
                return (Ctrl)oCopy;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        Font ICtrl_Font.Font
        {
            get { return _font; }
            set
            {
                _font = value;
                Console.WriteLine("CHECKBOX: Font.Name -> " + _font.Name);
                base.OnPropertyValueChanged(this, new AppData.PropertyValueChangeEventArgs(this, "Font"));
            }
        }
    }
}

Я получаю ошибку изнутри Ctrl_CHECKBOXв Cloneметод на линии oCopy.Font = ...но и в других частях кода, где Ctrl_CHECKBOX.Fontупоминается.

Как решить эту проблему? Спасибо.

0 ответов

Другие вопросы по тегам