2017-02-03 24 views
0
public class ThemeProperty 
    { 
     public Color FColor { get; set; } = Color.White; 
     public Color BColor { get; set; } = Color.Black; 
    } 

    [TypeConverter(typeof(ExpandableObjectConverter))] 
    public ThemeProperty Theme { get; set; } = new ThemeProperty(); 

    // Use. 
    public void Test() 
    { 
     Theme.BColor = Color.Gray; 
     Theme.FColor = Color.Black; 
     Theme = true; /*I wanted to make the feature active or passive, but 
     I could not figure out how to define a property class for this line.*/ 
    } 

Привет, Я создал расширяемое свойство под названием Theme. Хотя у меня есть две функции, я хочу использовать их, если я активен или пассивен, и я хочу использовать их, если я активен. Я могу создать и управлять функцией в этом, но она не является гибкой. Я хочу определить эту функцию, как указано выше, но я не мог понять, как это сделать. Большое спасибо за Вашу помощь.C# Расширяемое имущество

enter image description here

Я хотел бы добавить истинно ложные ценности на красной линии. Активация или деактивация функции.

ответ

0

Вы можете попробовать Somthing так:

public class ThemeProperty 
{ 
    public Color FColor { get; set; } 
    public Color BColor { get; set; } 
    public bool ActivePassive { get; set; } 

    public void ThemeProperty(bool state) 
    { 
     ActivePassive = state; 
     FColor = Color.White; 
     BColor = Color.Black; 
    } 
} 

и использовать конструктор, чтобы активно пассивными через истина/ложь. Надеюсь это поможет.

+0

Я попытался объяснить таким образом, что я еще не был гибким. Спасибо за ваш ответ, я организую вопрос. – Emre

0

Определите еще одно свойство в классе «ThemeProperty».

public class ThemeProperty 
{   
    public Color FColor { get; set; } = Color.White; 
    public Color BColor { get; set; } = Color.Black; 
    public bool Active { get; set; } = true; 
} 

// Use. 
[TypeConverter(typeof(ExpandableObjectConverter))] 
public ThemeProperty Theme { get; set; } = new ThemeProperty(); 


public void Test() 
{ 
    Theme.BColor = Color.Gray; 
    Theme.FColor = Color.Black; 
    Theme.Active = true; 
} 

В качестве альтернативы, если «Active» требуется вы можете передать булеву для активного конструктору класса. Кроме того, как замечание, вероятно, не очень хорошая практика назвать класс «Свойство». Любой класс, который может быть создан, может быть использован как Тип свойства. Ниже приведена альтернатива вашей первоначальной версии.

public class Theme 
{   
    public Theme(bool active) 
    { 
     Active = active; 
    } 

    public Color FColor { get; set; } = Color.White; 
    public Color BColor { get; set; } = Color.Black; 
    public bool Active { get; set; } 
} 

// Use. 
[TypeConverter(typeof(ExpandableObjectConverter))] 
public Theme theme { get; set; } 


public void Test() 
{ 
    theme = new Theme(true) { BColor = Color.Gray, FColor = Color.Black }; 
} 
+0

Я попытался объяснить таким образом, что я еще не был гибким. Спасибо за ваш ответ, я организую вопрос. – Emre

 Смежные вопросы

  • Нет связанных вопросов^_^