当前位置:  开发笔记 > 编程语言 > 正文

使用未分配的局部变量:值类型与自定义结构

如何解决《使用未分配的局部变量:值类型与自定义结构》经验,为你挑选了1个好方法。

原始C#值类型,例如int是结构.那么,为什么int没有初始化?我认为应该有默认构造函数.另一方面,自定义结构是可以的.

在以下代码中

struct STRCT { }
class Program
{
    static void Main(string[] args)
    {
        STRCT strct;
        strct.Equals(8);
        strct.GetHashCode();
        strct.GetType();
        strct.ToString();

        int i;
        i.Equals(8);
        i.GetHashCode();
        i.GetType();
        i.ToString();
    }
}

从C#编译器视图中可以看到前5行代码,接下来的5行代码会生成编译错误:

使用未分配的局部变量

请解释原因?从我的观点来看,这两种类型都是结构,并且具有相同的行为.



1> Damien_The_U..:

这是定义任务规则的病态极端.特别:

如果结构类型变量的每个实例变量都被认为是明确赋值的,则它被认为是明确赋值的.

在这种情况下(STRCT strct),实例变量集是空的,所以它们都是明确分配的.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有