C# 字段和局部变量

本文探讨了C#编程中字段和局部变量的作用域冲突问题。当在同一作用域内存在同名但作用域不同的变量时,局部变量会隐藏类级的字段。为访问类级字段,需使用`object.fieldname`的语法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字段和局部变量的作用域冲突

              某些情况可以区分名称相同(尽管其完全限定的名称不同)、作用于相同的两个标识符。此时编译器允许声明第2个变量。原因是C#再变量之间有一个基本区,他把在类型级别声明的变量看作字段,而把方法中声明的变量看作局部变量。

public class ScopeClass
{
   int i = 1;
 
   public void Print()
   {
       int i = 2;
       Console.WriteLine(string.Format("i value is {0}", i));
       Console.WriteLine(string.Format("ScopeTest i value is{0}", this.i));
   }
}

      

虽然在Main()方法的作用域内声明两个变量i,此时方法中声明的变量隐藏了同名的类级变量,如果要访问类级变量,可以使用语法 object.fieldname

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值