![](/img/trans.png)
[英]How to get string array values, i.e. passed as a parameter in an object array?
[英]How to get a string name to resolve to an object (i.e. in the sense of what it is)
例如,我可以做類似的事情:
switch (myString)
case "rectangle":
o = new rect();
break;
case "ellipse"
etc...
但是我怎么不做上面的事情,即只有一行代碼直接從字符串中獲取對象。 想象一下,例如,一個按鈕以及用戶點擊它時所說的任何內容,它會顯示所顯示的文本並從中創建一個對象。
如果名稱與字符串完全相同 ,則可以執行以下操作:
using System;
using System.Reflection;
class Example
{
static void Main()
{
var assemblyName = Assembly.GetExecutingAssembly().FullName;
var o = Activator.CreateInstance(assemblyName, "Example").Unwrap();
}
}
一個更簡單的方法看起來像這樣:
using System;
using System.Reflection;
class Example
{
static void Main()
{
var type = Assembly.GetExecutingAssembly().GetType("Example");
var o = Activator.CreateInstance(type);
}
}
但請記住,這是一個非常簡單的示例,它不涉及名稱空間,強名稱程序集或大型項目中出現的任何其他復雜事物。
他說,
你有沒有嘗試過Activator.CreateInstace(“assemblyname”,“typename”);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.