C#4.0引入了一种名为"dynamic"的新类型.这听起来不错,但程序员会用它做什么?
有没有可以节省一天的情况?
这段代码:
Type.GetType("namespace.a.b.ClassName")
Run Code Online (Sandbox Code Playgroud)
回报null.
我在使用中:
using namespace.a.b;
Run Code Online (Sandbox Code Playgroud)
更新:
类型存在,它在不同的类库中,我需要通过字符串名称来获取它.
有人可以Activator.CreateInstance()详细解释目的吗?
我有一个抽象类,我想把它推广到一个扩展它的类.
我将子类名称作为字符串.
除此以外...
String childClassString;
MyAbstractClass myObject;
if (childClassString = "myExtenedObjectA")
myObject = new ExtenedObjectA();
if (childClassString = "myExtenedObjectB")
myObject = new ExtenedObjectB();
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?基本上我如何摆脱这里的if语句?
我有一个字符串变量,表示自定义类的名称.例:
string s = "Customer";
Run Code Online (Sandbox Code Playgroud)
我需要创建一个客户的arraylist.所以,所需的语法是:
List<Customer> cust = new ..
Run Code Online (Sandbox Code Playgroud)
如何转换字符串s以便能够在运行时创建此arraylist?
我正在从XML中读取信息,其中包含我需要实例化的对象类型及其构造函数参数.
对象类型实际上位于兄弟命名空间内的另一个项目中.(我需要在Company.Project1类中创建一个Company.Project2.Type.)
我发现了这个问题,但它没有处理构造函数参数或它在另一个命名空间中的事实.
我怎样才能做到这一点?
编辑:项目属性中未正确设置程序集名称和默认名称空间.
在Windows应用程序中,使用C#,我有一个报告模块,它将依赖于类来填充报告.但是会有很多报告,我不想为每个报告编写代码.
流程将如下:在报告编辑器中,报告将被分配一个类(即"应用程序")作为字符串.当用户选择要运行的报告时,代码将从SQL查询中获取数据.代码将获取数据并找出将数据放入哪个类.然后,报告将获取该类,并使用该类中的数据填充报告.
这是我的困境,我如何使代码动态化,以便代码将指定的类转换为适当的类对象?
记住的例子:
gVar = Report;
(gVar.ReportClass)oClass = new gVar.ReportClass;
Run Code Online (Sandbox Code Playgroud) 我知道对象的类型(让我们说IAnimal)我需要实例化,并且名称(比如说Tiger).如果知道对象名称的变量是一个字符串,我如何编写实例化Tiger的代码.我可能在这里错过了一些简单的东西,但我目前仍然坚持这一点.
更新:我的意思是Class Tiger:IAnimal,上面改了以反映出来.
我有这个方法,我想通过传入类型名称来返回我创建的对象:
public object GetObjectType(object objectTypeName)
{
Type objecType = objectTypeName.GetType();
return Activator.CreateInstance(objecType);
}
Run Code Online (Sandbox Code Playgroud)
当我这样做:
var a = GetObjectType("Person");
Run Code Online (Sandbox Code Playgroud)
我明白了: No parameterless constructor defined for this object.
我不太清楚这CreateInstance是做什么所以我在这里盲目飞行.我是否需要向我的课程添加一些内容,如下所示:
public class Person
{
public string Name {get; set;}
}
Run Code Online (Sandbox Code Playgroud) 我有这个对象集:
Object A
Object AA: A
Object BB: A
Object CC: A
Run Code Online (Sandbox Code Playgroud)
如何创建AA类型的对象给定一个带有"AA"的字符串变量?我一直在看Activator的东西,但不能完全理解它.