请问各位大牛,以下代码是什么意思啊(C#语法)?
代码一:
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 在代码二这个函数中被用到:
这上面的二段代码是什么意思?看不懂,请大家指点。谢谢!
慕姐8265434
浏览 490回答 1
1回答
-
呼唤远方
代码一、你有有没有感觉用十六进制码对于位的表示来说很直接举个例子
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;
}
打开App,查看更多内容