使用WHERE子句+新的约束与ARGS?

我有一段代码,如下所示:

public static T CreateSomething<T>(SomeType a) where T : SomeMicrosoftBaseClass, new() { var newElement = new T { SomeProperty = a}; DoStuff(); return newElement; }

现在我需要更改代码,这样我就可以传递给SomeMicrosoftBaseClass的构造函数的布尔的说法 - 我只能设置建设。

自从“新的()”的约束,需要一个公共无参数的构造函数,因为我无法用一个接口或者修改SomeMicrosoftBaseClass,我使用反射像这样:

var newElement = (T) (typeof (T).GetConstructor(new Type[] { typeof(SomeType) }).Invoke(new object[] { a }));

有谁能够提出一个更优雅的方式来做到这一点?

--------------解决方案-------------

也许你可以使用Activator.CreateInstance:

var newElement = (T)Activator.CreateInstance(typeof(T),a);

分类:C# 时间:2015-03-15 人气:0
本文关键词: .NET,C#,where子句
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.263 (s). 10 q(s)