首页 > 编程语言 >C#基础-成员变量&局部变量&全局变量

C#基础-成员变量&局部变量&全局变量

时间:2024-10-04 20:22:03浏览次数:3  
标签:Console 变量 C# 成员 局部变量 作用域 tId 全局变量

        代码中经常使用变量用于记录,如:一个人的年龄、身高、家人等。这些数据用于记录这个人的信息,并且在运行过程中,这些数据可以发生变化,叫做变量。在不同的地方声明的变量作用域不同。在同一作用域下不可存在多个相同名字的变量。

目录

变量:

成员变量:

局部变量: 

全局变量:

代码示例:


变量:

        变量可以指一个值,也可以指另一个对象。变量内存存储在声明它的地方。

格式:数据类型 + 变量名 = 变量值;

成员变量:

        成员指作为类的类成员, 将变量作为类成员声明在类中,当前类被实例化时跟随类对象一起存储。与方法同级,作用域为整个类中。

格式:访问权限修饰 + 数据类型 + 变量名;//可选择先声明不赋值 有默认值

           访问权限修饰 + 数据类型 + 变量名= 变量值;//可选择声明时赋值

局部变量: 

        指在方法中或在一段逻辑中声明的变量,在方法或逻辑执行完销毁释放。它的作用域仅在声明的地方中,并且属于值类型,存储在栈空间。格式与成员变量一样。

全局变量:

        指在运行期间,作用域为整个程序的变量。c#作为面向对象语言,没有全局变量的概念。但可以使用静态来代替。

参考静态文章:https://blog.csdn.net/m0_59267625/article/details/142637490?spm=1001.2014.3001.5502

代码示例:

namespace ConsoleApp3
{
    internal class Program
    {
        static void Main(string[] args)
        {
            
            MyClass1 myClass1= new MyClass1();
            myClass1.Func1();//输出: _id默认值 _name值 以及tId值
            myClass1.Func2();
            myClass1.Func3();
        }
    }

    public class MyClass1
    {
        public int _id;//成员变量 没有赋值 使用默认值
        public string _name="小明";//成员变量 声明时赋值

        public void Func1()
        {
            int tId = 0;//方法中的局部变量
            Console.WriteLine("成员变量 :_id " + _id);
            Console.WriteLine("成员变量 :_name " + _name);//在类中成员变量都可被调用
            Console.WriteLine("局部变量 :tId " + tId);
        }

        public void Func2()
        {
            //在方法2中调用方法1 的局部变量 报错:不存在tId 说明出了方法1 tId作用域失效
            //Console.WriteLine("局部变量 :tId " + tId);
            Console.WriteLine("Func2成员变量 :_id " + _id);//可访问 说明成员变量作用域为整个类

        }

        public void Func3()
        {
            if (true)
            {
                int tId = 10;//声明if语句块中的局部变量
                Console.WriteLine("Func3 if局部变量 :tId " + tId);
            }
            //报错:不存在tId 说明出了语句块 tId失效
            //Console.WriteLine("Func3 if局部变量 :tId " + tId);
        }
    }
}

标签:Console,变量,C#,成员,局部变量,作用域,tId,全局变量
From: https://blog.csdn.net/m0_59267625/article/details/142678659

相关文章

  • C#基础-值类型引用类型&类与结构体
             通俗的来讲(仅代表个人理解),可以将数据区存储看成一个书架(栈)和一座图书馆(堆)堆栈内存是动态的,还有静态区域(程序运行编译时内存就固定的)。书架上存放这一些值类型、一些对象的引用、方法参数、局部变量等 。而图书馆中存放着较为复杂的、有特殊功能的、......
  • CSP-JS多省分数线分析!复赛如何准备?(附复赛流程视频)
    截止目前已经有多个省份CSP-JS的分数线已经出了,很多省份比去年提升了不少,像河南等地都提升了20多分,不过也有一些省份,天津比去年提升分数却不是很多。还有很多省份分数线没出,各位家长想要预估是否能够晋级的,以下是已出分数线省份表格统计:目前已出分数线省份省份入门组......
  • 两数相除(c语言)
    1.//给你两个整数,被除数dividend和除数divisor。将两数相除,要求不使用乘法、除法和取余运算。//整数除法应该向零截断,也就是截去(truncate)其小数部分。//例如,8.345将被截断为8,-2.7335将被截断至-2。//返回被除数dividend除以除数divisor得到的商。//注......
  • 快乐数(c语言)
    1.「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为1,也可能是无限循环但始终变不到1。如果这个过程结果为1,那么这个数就是快乐数。如果n是快乐数就返回true;不是,则返回false。1<=n<=2^31 -1......
  • 找到字符串中第一个匹配项的下标(c语言)
    1./给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果needle不是haystack的一部分,则返回 -1。//示例1://输入:haystack="sadbutsad",needle="sad"//输出:0//解释:"sad"在下标0和6处匹......
  • Competitive Programmer
    CompetitiveProgrammer题面翻译给出nnn个数,问对于每个数,是否可以将这个数的数位重新组合(可以有前导零),使其可以被60......
  • PBOOTCMS后台出现“登入失败:表单提交校验失败,刷新后重试!”等情况怎么办?
    当你使用PbootCMS模板搭建的网站后台出现“登录失败:表单提交校验失败,请刷新后重试!”的问题时,可以按照以下步骤进行排查和解决:解决方案1.切换PHP版本有时PHP版本不兼容可能会导致此类问题。你可以尝试切换PHP版本来解决此问题。检查当前PHP版本:bash php-v......
  • [CSP-J 2023] 小苹果(apple)-----------用数组
    1#include<iostream>2usingnamespacestd;3intmain(){4intn,m;5cin>>n>>m;6intg=n,t=0,li,s[n+1],b;7for(inti=1;i<=n;i++){8s[i]=i;9}10while(g){11t+=1,b=0,li=0,g-=(g+......
  • Cornell cs3110 - Chapter6 Exercises
    (*Exercise:specgame*)(*Whereisanotherprogrammer?*)(*Exercise:polyspec*)(*[Poly]representsimmutablepolynomialswithintegercoeffcients*)moduletypePoly=sig(*[t]isthetypeofpolynomials*)typet(*[evalxp]is[p]e......
  • django + redis + celery 异步任务
    目录结构E:.│db.sqlite3│Dockerfile│manage.py│requirements.txt│├─celery_tasks#自定义一个celery的工作目录││config.py#celery配置文件││__init__.py│││├─sms│tasks.py#worker任务│__init__.py│......