#c# #properties #instance #curly-braces #generic-type-argument
Вопрос:
Можно ли создать метод, возвращающий новый объект, который я все еще могу использовать:
{ variable 1 = "content1", variable2 = "content2" }
Потому что на данный момент, после получения объекта, я вместо этого использую следующее:
tempObject.variable1 = "content1";
tempObject.variable2 = "content2";
Так, например:
var tempNewObject = MDBShorterManager.Create<TblUser>() { variable1 = "content1", variable2 = "content2" };
Мой нынешний метод:
public T Create<T>() where T : MDBShorter
{
try
{
var tempObject = (T)Activator.CreateInstance(typeof(T));
tempObject.mdbShorterManager = this;
try
{
actionInjectDataToMDBShorter?.Invoke(tempObject);
}
catch(Exception ex)
{
ErrorLog.cw(ex.Message);
}
return tempObject;
}
catch (Exception ex)
{
ErrorLog.cw(ex.Message);
return null;
}
}
Комментарии:
1. Если вам необходимо инициализировать свойства при создании объекта, рассмотрите возможность реализации параметров конструктора. Затем реализуйте свой метод создания фабрики соответствующим образом.
Ответ №1:
Нет, на момент создания поста в C#такого не было. Возможно, в будущем они добавят такой синтаксический сахар, но в настоящее время его можно использовать только с ключевым словом «новый» рядом с вызовом конструктора.