C# 学习第二弹

news2025/7/19 20:35:41

一、变量

存储区(内存)中的一个存储单元

(一)变量的声明和初始化

1、声明变量——根据类型分配空间

①声明变量的方式

—变量类型 变量名 = 数值;

—变量类型 变量名;

变量名 = 数值;

—变量类型 变量1,变量2,变量3;

竟然可以用汉字,但是非常不建议用!!!!

namespace Demo2
{
    class Program
    {
        static void Main(string[] args)
        {
            //声明变量的方式
            int money = 100;
            int mon2;
            mon2 = 200;
            int m1, m2, m3, m4;
            int 往 = 2;
        }
    }
}

 ② 变量的命名规则

首字母:字母/下划线

其余部分:任意数字/字母/下划线

变量的基本要求:简短且能清楚的表明变量的作用,通常第一个单词首字母小写,其余单词首字母大写。

变量名不能与C# 关键字冲突

变量区分大小写

2、初始化变量——将数据存入内存空间

①单独初始化变量

②声明时初始化变量

③同时初始化多个变量 

变量的作用域

静态变量使用类名引用

实例变量使用类对象引用

类内:静态变量随类的创建而创建,实例变量随对象的创建而创建;静态方法不能调用实例变量,需将类实例化之后再调用,非静态方法可以调用静态变量和实例变量。

类之间:静态方法可直接调用,非静态方法需实例化类之后再调用;

public class MyClass
    {
        // 静态变量  
        public static int StaticVar = 0;

        // 实例变量  
        public int InstanceVar = 0;

        // 静态方法  
        public static void StaticMethod()
        {
            // 可以访问和修改静态变量  
            StaticVar = 10;

            // 不能直接访问实例变量,除非通过对象实例  
            // MyClass instance = new MyClass();  
            // instance.InstanceVar = 20; // 这样是可以的,但通常不是静态方法的做法  
        }

        // 非静态方法(实例方法)  
        public void InstanceMethod()
        {
            // 可以访问和修改实例变量和静态变量  
            InstanceVar = 20;
            StaticVar = 30;
        }
    }

    class Program1
    {
        static void Main()
        {
            // 静态方法调用,不需要实例化对象  
            MyClass.StaticMethod();

            // 实例化对象  
            MyClass instance = new MyClass();

            // 调用非静态方法  
            instance.InstanceMethod();

            // 访问静态和非静态变量  
            Console.WriteLine("StaticVar: " + MyClass.StaticVar); // 输出: 30  
            Console.WriteLine("InstanceVar: " + instance.InstanceVar); // 输出: 20  
        }
    }
Console.WriteLine("欢迎来到90年代!\n");
Console.WriteLine("请输入用户名:");
string x = Console.ReadLine();
Console.WriteLine("当前用户名为:" + x);
Console.Read();

3、使用变量——取出数据使用

注意:使用变量前要进行初始化,变量名规则

(二)数据类型

1、值类型——值类型直接存储

(1) 简单类型

①整数类型

②浮点类型

强制转换使用f或d,默认为double类型。

------decimal类型(财务/货币计算)

decimal类型表示128位数据类型,是一种精度更高的浮点类型,精度可以达到28位,取值范围为\pm 1.0\times 10^{-28} \sim \pm7.9\times10^{28}。如果希望一个小数被当成decimal类型使用,需要使用后缀m或M。

decimal d = 3.2m;

 ③布尔类型

2、引用类型 ——存储对值的引用

①object类型

object类是所有类的基类。

②string类型

简化字符串操作。

string类型的变量一旦初始化之后,值不会发生改变。

3、值类型和引用类型的区别

例:

3、枚举类型

 枚举是一组描述性的名称

枚举定义一组有限的值,不能包含方法

对可能的值进行约束

枚举允许描述行名称表示整数值

4、类型转换

(1)隐式类型转换

①两种类型兼容
②目标类型精度大于源类型

char类型可以隐式的转换成整型和浮点数类型。其他类型无法隐式的转换为char类型。

 (2)显式类型转换(前置类型转换)高精度->低精度

①(类型名)表达式

int b = (int)10.2

 int类型最大取值范围为2147483647出现溢出。

 ②Convert.To类型名(表达式)

当发生溢出的时候会提示报错,而不是负数。

③类型名.Parse(表达式),只适用于数值类型的转换

(3)装箱和拆箱——值类型和引用类型的转换 

拆箱的类型应该与原类型一致 !!!

int i = 10;
object obj = i;
int j = (int)obj;

 二、常量

(一)常量的定义和分类

1、定义:不能被改变的量

2、分类

编译时常量const:

运行时常量readonly:不能定义在构造方法中,只能定义在类体内.

const初始化之后值不变,语句顺序不影响运行结果。 readonly没初始化之前值为0。

 三、变量与常量的区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1473096.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Rust】简介、安装和编译

文章目录 一、Rust简介二、Rust 安装三、Rust 程序结构3.1 模块(Modules):3.2 函数(Functions):3.3 变量(Variables):3.4 控制流(Control Flow)&a…

Coursera吴恩达机器学习专项课程02:Advanced Learning Algorithms 笔记 Week03

Week 03 of Advanced Learning Algorithms 笔者在2022年7月份取得这门课的证书,现在(2024年2月25日)才想起来将笔记发布到博客上。 Website: https://www.coursera.org/learn/advanced-learning-algorithms?specializationmachine-learnin…

Centos配置SSH并禁止密码登录

CentOS8 配置SSH使用密钥登录并禁止密码登录 一、概念 SSH 为 Secure Shell 的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。 SSH提供两个级别的认证: 基于口令的认证 基于密钥的认证 基本使…

SkyWalking微服务链路追踪实战

目录 skywalking是什么? Skywalking主要功能特性 Skywalking整体架构 SkyWalking 环境搭建部署 SkyWalking快速开始 SkyWalking Agent追踪微服务 通过jar包方式接入 在IDEA中使用Skywalking Skywalking跨多个微服务追踪 Skywalking集成日志框架 Skywalki…

【c语言】if 选择语句

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C语言 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步&…

计网Lesson16 - TCP选择重传和流量控制

文章目录 1. 选择性确认(SACK)2. TCP流量控制2.1 基本情况2.2 特殊情况 1. 选择性确认(SACK) TCP通信中,发送序列中的某一包丢失(1,2,3,4,5 中 3 丢失&#…

Promise 介绍与基本使用 - 学习笔记

Promise 介绍与基本使用 1、 Promise 是什么?2、创建 Promise 实例对象3、Promise 实例方法4、Promise 的基本工作流程5、实例方法6、静态方法7、async 和 await7.1、关键字7.2、实例7.3、区别7.4、为什么使用 async/await 比较好? 1、 Promise 是什么&a…

NUS神经网络生成我感觉解读过于夸大了

网上对其解读有点过了,只是合成了最后标准化层的参数,或者是更多的其他层参数。而不是网络结构。对于新任务下的网络结构以及参数如何生成,应该是做不到的,论文意义有限。 论文片段:我们提出了神经网络扩散&#xff0…

数据可视化引领智慧仓储新时代

随着科技的飞速发展,数据可视化已然成为智慧仓储领域的璀璨明珠,其强大的功能和多面的作用让智慧仓储焕发出勃勃生机。让我们一同探索,数据可视化究竟在智慧仓储中起到了怎样的作用。下面我就以可视化从业者的角度来简单谈谈这个话题。 在这…

【练习——打印每一位数】

打印一个数的每一位 举个例子:我们现在要求打印出123的每一位数字。我们需要去想123%10等于3,就可以把3单独打印出来了,然后再将123/10可以得到12,将12%10就可以打印出2,而我们最后想打印出1,只需要1%10就…

数据隐私安全趋势

在当今社交媒体和开源开发的世界中,共享似乎已成为社会常态。毕竟,我们都被教导分享就是关怀。这不仅适用于个人,也适用于公司:无论是有意在社交媒体帐户和公司网站上,还是无意中通过员工的行为,公司可能会…

树莓派使用git clone时报错failed: The TLS connection was non-properly terminated.

fatal: unable to access https://github.com/jacksonliam/mjpg-streamer.git/: gnutls_handshake() failed: The TLS connection was non-properly terminated. 原因:权限不足 解决办法:sudo git clone 加对应网址。 sudo git clone https://github.co…

golang gin单独部署vue3.0前后端分离应用

概述 因为公司最近的项目前端使用vue 3.0,后端api使用golang gin框架。测试通过后,博文记录,用于备忘。 步骤 npm run build,构建出前端项目的dist目录,dist目录的结构具体如下图 将dist目录复制到后端程序同级目录…

排序(9.17)

1.排序的概念及其运用 1.1排序的概念 排序 :所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性 :假定在待排序的记录序列中,存在多个具有相同的关键字的记…

网络安全与信创产业发展:构建数字时代的护城河

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua,在这里我会分享我的知识和经验。&#x…

CMU15445实验总结(Spring 2023)

CMU15445实验总结(Spring 2023) 背景 菜鸟博主是2024届毕业生,学历背景太差,导致23年秋招无果,准备奋战春招。此前有读过LevelDB源码的经历,对数据库的了解也仅限于LevelDB。奔着”有对比才能学的深“的理念,以及缓解…

Java之SpringMVC源码详解

SpringMVC源码 一、SpringMVC的基本结构 1.MVC简介 以前的纯Servlet的处理方式: Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String type req.getParameter(Constant.REQUEST_PA…

Scrapy实战

代码: Spider import scrapy from urllib.parse import urljoin from scrapy import Requestclass JiaSpider(scrapy.Spider):name "jia"allowed_domains ["desk.zol.com.cn"]start_urls ["https://desk.zol.com.cn/dongman/"]d…

【kubernetes】二进制部署k8s集群之cni网络插件flannel和calico工作原理

k8s集群的三种接口 k8s集群有三大接口: CRI:容器进行时接口,连接容器引擎--docker、containerd、cri-o、podman CNI:容器网络接口,用于连接网络插件如:flannel、calico、cilium CSI:容器存储…

C# 学习第三弹——表达式

表达式操作数运算符 (一)算数运算符 错误例子:这不是python!!!!!!!!!!!!! 正确结果&a…