1
5
问题是抓块。编译器必须假定int32.parse代码可以抛出,从而命中catch块。在这种情况下,int32.parse行没有完成,因此测试从来没有赋值。这意味着“if”行试图使用未初始化的值。 你可以通过
|
2
1
您混淆了什么是变量声明和什么是变量初始化之间的区别
只声明您有一个名为test的变量,它是一个可以为空的int 但是
声明您有一个名为test的变量,该变量是一个可为空的int,其值为空。 在VB中没有区别,但在C中有区别。这就是编译器抱怨的原因,因为如果try块中有什么失败了,那么测试变量就永远不会被初始化。 |
3
1
你可以避免(int?)强制转换,为“=null”字符串保存7个字节:)
|
4
1
对于本地定义的变量(在方法或属性中,而不是直接在类中),这是一个总是发生的错误。尽管事实仍然是编译器 不需要 生成此错误以便工作,它 做 它专门用于帮助您在不总是分配变量的情况下识别潜在的意外结果。(如果我错了,有人会纠正我,但至少在某些/所有情况下,C编译器的某些早期版本没有检查未分配的变量。)
等价(而不是分配
|
5
0
它们做同样的事情,您的是正确的,但是变量需要显式分配空值以消除“未分配值”错误,如果您希望将空值视为不会引发警告的有意“未设置”变量。除此之外,贾雷德帕的回答是正确的。 |
6
0
我相信这种风格要干净得多:
至于编译器错误:任何本地字段在读取之前都必须在代码路径上显式初始化。不初始化本地字段是一个常见的错误,这就是为什么它在C中是一个错误。C/C++只警告这一点,如果它没有初始化,它可以产生*Frase*结果,并且该值反映已经在调用堆栈上的字节。 我只能推测这一点,但这可能是显式初始化本地字段的性能方面,与类字段相反:当对象被实例化时,一次初始化对象内存流的运行时成本更低,但是在每个方法调用上多次初始化本地字段是多余的。 |
tomm · 谷歌表格-将两列相乘,复制第三列 2 年前 |
ziemsterr · 无法在SQL SELECT语句中找出此语法错误 2 年前 |
Andrés BolÃvar · AJAX请求未收到我想要的属性 2 年前 |
clarkk · 当声明向量时,(1)是什么意思? 2 年前 |
Mike C. · Bash错误[:检查文件是否存在时缺少“]” 2 年前 |
michael · 错误的脚本和语法问题 2 年前 |