小编Ben*_*n M的帖子

C#字典初始化程序编译不一致

以下代码编译,但失败并带有NullReferenceException:

class Test
{
    public Dictionary<string, string> Dictionary { get; set; }
}

static void Main(string[] args)
{
    var x = new Test
    {
        Dictionary =   // fails
        {
            { "key", "value" }, { "key2", "value2" }
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

如果用以下内容替换标记为"失败"的行,则可以正常工作(如预期的那样):

Dictionary = new Dictionary<string, string> 
Run Code Online (Sandbox Code Playgroud)

失败的语法是否有任何目的 - 是否可以在其他情况下成功使用?或者这是编译器的疏忽?

c# compiler-construction syntax dictionary initializer

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

用于确定C++代码使用的Win32 API版本的工具?

我正在修改一个大型C++项目,该项目的第一个版本仅适用于Windows 7,适用于Vista和XP.

主要工作是更改W7 API调用以在运行时使用GetProcAddress(以避免与其他平台上不可用的方法进行静态链接),因此我想知道是否有任何工具可以帮助识别哪些调用需要改变 - 希望通过检查C++代码本身.

如果不这样做,最好尝试针对较旧的Windows SDK构建项目吗?- 例如:http://www.microsoft.com/download/en/details.aspx?displaylang = en&id = 6510

c++ api winapi version

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