C#和Java变量命名区别(分析有误请指出,刚接触C#还在学习中)

以下是亲测:

C#代码如下,正常编译通过,与Java无区别

using System;
  
namespace Wrox.ProCSharp.Basics
{
   public class ScopeTest
   {
      public static int Main()
      {
         for (int i = 0; i < 10; i++)
         {
            Console.WriteLine(i);
         }   // i在这里超出范围。
 
         for (int i = 9; i >= 0; i--)
         {
            Console.WriteLine(i);
         }   // i在这里超出范围。
         return 0;
      }
   }
}


java代码如下,均可以正常编译

public static void main(String[] args) {
		
		for (int i = 0; i < 9; i++) {
			System.out.println(i);
		}
		
		for (int i = 9; i >= 0; i--) {
			System.out.println(i);
		}
	}

C#代码如下不能正常编译:

using System;
  
namespace Wrox.ProCSharp.Basics
{
   public class ScopeTest
   {
      public static int Main()
      {
         for (int i = 0; i < 10; i++)
         {
            Console.WriteLine(i);
         }   // i在这里超出范围。
 
         int i=3;
	 Console.ReadLine();
         return 0;
      }
   }
}

编译出错,见下图:


java代码正常编译通过

public static void main(String[] args) {
		
		for (int i = 0; i < 9; i++) {
			System.out.println(i);
		}
		
		int i=3;
		System.out.println(i);
	}

C#正在学习,有错请指出,采用Visual Studio 2013环境编译

通过以上测试,说下自己看法:


C#和Java中,for、while或类似语句中声明的局部变量都存在于循环体内

C#中出了循环体外之后可以再次声明一个不在同一作用域的同名的局部变量,而Java中是可以再次在局部变量之外声明同名的局部变量的!(表述有点绕口,大家看实例懂的就好)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值