Почему требуется наличие (объекта) в отливке? Это кажется нелогичным.
public void GenerateForm<T>(T form)
{
if (form.GetType() == typeof(Form1))
{
Console.WriteLine(((Form1)(object)form).name);
}
}
Похоже, вы как бы побеждаете цель дженериков, если вам нужно знать, является ли T
каким-то конкретным типом ...
Возможно, нет смысла конвертировать
T
вForm1
, но имеет смысл конвертироватьT
вObject
иObject
вForm1
. Компилятор не настолько умен, чтобы знать, чтоif
что-то меняет. Вы уверены, что вам не нужныif (form is Form1 f)
и простойConsole.WriteLine(f.name)
?