Pages - Menu

2017年1月19日 星期四

VB.NET 使用反射取得List內的結構名稱

延續上篇LinqToCSV+泛型+反射

如果使用foreach能夠取得正確的型別

For Each ss In list
    Dim uTemp As Object = ss
    Dim uType As Type = ss.GetType
    Dim _machineNo As PropertyInfo = uType.GetProperty("machineNo")
    _machineNo.SetValue(uTemp, machineNo)
Next

但如果今天我要在list的外面直接取欄位名稱該怎麼抓?

在GetType後面加上 GetGenericArguments,會取得一個陣列,

裡面有List的類別。

Dim oTemp As Object = list
Dim oType As Type = list.GetType.GetGenericArguments()(0)

2017年1月17日 星期二

VB.NET +LinqToCSV+泛型+反射

前面兩項vb.net+LinqToCSV的應用,

沒什麼困難。但後面因為不同的設備,要用到不同的class但邏輯都一樣。

想說就來用泛型好了,結果…..燒的我一個頭兩個大。

泛型用完,還要用反射來動態取class的Property燒的我頭又更大了。

泛型+反射 還有很多未解的問題,還需慢慢研究。

2017年1月11日 星期三

C# ,$符號的意思

剛看到別人寫的code…瞬間不知道這是啥玩意。

查了一下在statckOverflow上看到解釋。wiki上也有解是

直接看範例

var anInt = 1;
var aBool = true;
var aString = "3";
var formated = string.Format("{0},{1},{2}", anInt, aBool, aString);
var anInt = 1;
var aBool = true;
var aString = "3";
var formated = $"{anInt},{aBool},{aString}";

這樣寫有比較好嗎???

不知道,但有強型別不用,還要自己打字,一打錯就掛了…

看起來程式是比較簡潔沒錯。

C# 反射 使用 Type.getType(string) 抓不到正確類別

反射需要先用動態的方式,尋找類別的名稱,

才能正確解析出他所使用的類別。

一開始的程式 是參考 slashlook  的這篇程式碼。

但就是跑不起來,在建立類別的執行個體時,會發生錯誤,該值不能為null

 

string cTargetClassName = "Sample_Reflection.Program.Transportation";

System.Object oTemp = System.Activator.CreateInstance(System.Type.GetType(cTargetClassName));