我在數組中存儲了作爲參數傳遞的2個對象的類型。 我試圖在循環中投射它們,但它似乎不起作用。
我注意到當我調試對象的類型的值(由key.GetType()返回)時,它顯示Name=RunTimeType FullName=System.RuntimeType
而不是預期的Name=Label
。
我不知道我在做什麼錯。有什麼建議麼?使用Typeof在循環中鑄造
public static void GetUserGUIDandSID(string username, Object b, Object c) {
PrincipalContext ctx = new PrincipalContext(ContextType.Domain,
"domainName.com");
UserPrincipal user = (UserPrincipal.FindByIdentity(ctx, username));
var empIdNum = user.Guid.Value;
var empSID = user.Sid.Value;
List<object> types = new List<object>();
types.Add(b.GetType());
types.Add(c.GetType());
foreach(var key in types) {
if (key.GetType() == typeof(Label)) {
((Label)b).FontSize = 10;
((Label)b).Content = empIdNum;
}
if (key.GetType() == typeof(TextBox)) {
((TextBox)b).FontSize = 10;
((TextBox)b).Text = empIdNum.ToString();
}
if (key.GetType() == typeof(TextBlock)) {
((TextBlock)b).FontSize = 10;
((TextBlock)b).Text = empIdNum.ToString();
}
}
}
你可以做「b是標籤」,「c是標籤」 – Steve
你能告訴我們你怎樣稱呼你自己的功能?我懷疑你傳遞的是對象的類型而不是它們的實例,如[這裏顯示](http://stackoverflow.com/a/5737947/4905310)。就像調用'GetUserGUIDandSID(「user1」,tb1.GetType(),lb1)。「GetType());'而不是'GetUserGUIDandSID(」user1「,tb1,lb1);' –