Вот мой код:
using System;
using System.Drawing;
using System.Windows.Forms;
namespace HidingMyAppNameHereSoYouCantStealMyIdeas.Classes._Main
{
public class Theme
{
private Color ForeColor;
private Color BackColor;
public Theme(Color fore, Color back)
{
ForeColor = fore; BackColor = back;
}
public void ApplyTo<T>() where T : Form
{
T.ForeColor = Color.Black;
}
public void ApplyTo(Control control)
{
control.ForeColor = ForeColor;
control.BackColor = BackColor;
}
}
}
И я получаю сообщение об ошибке T
в T.ForeColor = Color.Black;
:
Ошибка CS011: «T» - этоПараметр типа, который недопустим в данном контексте
Я предполагаю, что я ошибся, пытаясь получить доступ к свойству универсального.
В любом случае, я думаю, это понятночто я пытаюсь сделать здесь, поскольку Form
при создании приложения Windows Forms обычно является классом, а не переменной, такой как элементы управления для приложения Form.
Столько, сколько я могу найтиЧтобы обойти это, я хочу знать, возможно ли получить доступ к свойствам T (интересующего меня подкласса формы) и изменить его так, чтобы код в ApplyTo<T>() where T : Form
не содержал ошибок для целей обучения.Если это невозможно, это тоже вполне нормально.