小编use*_*673的帖子

Const多维数组初始化

为什么以下工作?

class A
{
    public int[,] i = { { 1, 2, 3 }, { 1, 2, 3 }, { 1, 2, 3 } };

    static void Main(string[] args)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

以下不是吗?

class A
{
    public const int[,] i = { { 1, 2, 3 }, { 1, 2, 3 }, { 1, 2, 3 } };

    static void Main(string[] args)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

它不允许为除string之外的const引用类型分配除null之外的任何其他类型.由于它是一个数组(引用),因此必须将其指定为null(?).如果它是常数并且为空,它将如何初始化?

c# arrays const

12
推荐指数
1
解决办法
1万
查看次数

.NET单一与多播委托

我已经深入阅读了一些关于代理的内容,一个方法的委托可能与多播委托不同,这让人感到困惑.但是,通过反射,你可以清楚地看到,即使只有一个方法,委托确实是从一个对象派生出来的MulticastDelegate,而不是立即派生出来的Delegate.

class Program 
{
    public delegate void MyDelegate();

    static void SomeMethod()
    {
    }

    static void Main(string[] args)
    {
        MyDelegate del = null;
        del = new MyDelegate(SomeMethod);
        Console.WriteLine(del.GetType().BaseType.Name);            
        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:MulticastDelegate

我意识到a MulticastDelegate包含一个Delegate对象的调用列表.我想知道是否有可能Delegate直接创建单个,如果这样做有任何好处,除了单独调用GetInvocationList()和提取Delegate对象.

c# delegates

1
推荐指数
1
解决办法
2599
查看次数

标签 统计

c# ×2

arrays ×1

const ×1

delegates ×1