代碼一:
private static byte[] wmLinkVal = new byte[] {
0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x66,
0x69, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x63, 0x65, 110, 0x73, 0x65, 0x2e,
0x70, 0x68, 0x70
};
private static byte[] wmRegVal = new byte[] {
0x56, 0x69, 0x73, 0x69, 0x66, 0x69, 0x72, 0x65, 0x20, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x20, 0x45,
100, 0x69, 0x74, 0x69, 0x6f, 110
};
?
代碼二:
protected virtual void LoadWm(GaugeTypes type)
{
if (CS$9__CachedAnonymousMethodDelegatef == null)
{
CS$9__CachedAnonymousMethodDelegatef = new Func(null, (IntPtr) b__d);
}
if (CS$9__CachedAnonymousMethodDelegate10 == null)
{
CS$9__CachedAnonymousMethodDelegate10 = new Func(null, (IntPtr) b__e);
}
this.CreateWmElement(type, new string(Enumerable.Select(wmRegVal, CS$9__CachedAnonymousMethodDelegatef).ToArray()), new string(Enumerable.Select(wmLinkVal, CS$9__CachedAnonymousMethodDelegate10).ToArray()));
}
?
不明白啊,我知道是16進制的數組,但為什么這樣寫呢,直接用 Int 數組不就行了嗎?
代碼一中定義的數組wmLinkVal 在代碼二這個函數中被用到:
這上面的二段代碼是什么意思?看不懂,請大家指點。謝謝!
1 回答

呼喚遠方
TA貢獻1856條經驗 獲得超11個贊
代碼一、你有有沒有感覺用十六進制碼對于位的表示來說很直接舉個例子
0x68=》(0110 1000) 如果用十進制表示你還要自己去換算對整數做位運算 0x68|0x23比103|35對于開發人員來說要友好的多。代碼二、這是.NET Reflector反編譯的代碼。你只要把CS$<>9__CachedAnonymousMethodDelegatef 看作一個委托就好了舉個例子C#代碼
protected virtual void LoadWm()
{
Delegate d = new Func((a,b) => a + b);
}
反編譯的代碼
protected virtual void LoadWm()
{
if (CS$<>9__CachedAnonymousMethodDelegate1 == null)
{
CS$<>9__CachedAnonymousMethodDelegate1 = new Func(null, (IntPtr) b__0);
}
Delegate delegate2 = CS$<>9__CachedAnonymousMethodDelegate1;
}
- 1 回答
- 0 關注
- 511 瀏覽
添加回答
舉報
0/150
提交
取消