C#语言学习:变量的声明与初始化的范围(对比C++)


C# 中如何代码段有错误:

1 int i = 0;  
2 string text;  
3   
4 for(i = 0;i < 10;i++)  
5 {  
6      text = "Line " + Convert.ToString(i);  
7      Console.WriteLine("{0}", text);  
8 }  
9 Console.WriteLine("First Console App: {0}",text);   // 错误   CS0165  使用了未赋值的局部变量“text”  

书上的解释如下:
必须在使用变量前对其进行声明和初始化,而 text 是在 for 循环中初始化的。赋给 text 的值在循环块退出时就丢失了。

这与 C++ 语言的差别是明显的。如下代码,定义一个 class 后,先是声明这个类的一个变量;然后在一个代码块中初始化这个变量。在退出这个代码块后,此变量的内容还是存在的,因为没有超过此变量的定义范围。除非,在代码块中调用 delete 来释放此变量。

 1 class testVarInit  
 2 {  
 3 public:  
 4     testVarInit()  
 5     {  
 6         printf("init\r\n");  
 7     }  
 8     ~testVarInit()  
 9     {  
10         printf("deinit\r\n");  
11     }  
12 };  
13   
14   
15 int _tmain(int argc, _TCHAR* argv[])  
16 {  
17     testVarInit *test;  
18     {  
19         test = new testVarInit();  
20         // delete test;  
21     }  
22     getchar();  
23     return 0;  
24 }  

优质内容筛选与推荐>>
1、linux命令学习笔记( 7 ) : mv 命令
2、ACM学习历程—NPU 2015年陕西省程序设计竞赛网络预赛(正式赛)F题 和谐的比赛(递推)
3、内部排序
4、linx下对文件权限设置
5、Python数据库连接池实例——PooledDB


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn