前妻(C#)基础语法01

这一世的第一个C#程序

众所周知C的文件后缀是.c C++的文件后缀是.cpp 这些我为什么知道我也不知道 因为这是众所周知的 而我最亲爱的前妻 它的文件后缀是.CS (哦莫,多么优美又动人的后缀)

文件如下

using System;

namespace  dear
{
   
	public class myfirstclass
	{
   
		static void Main()
		{
   
			Console.WriteLine("你好 前妻");
			Console.ReadLine();
			return;
		}
	}
}

下一步我们要把它编译为exe程序,用csc命令 然后出现了滑铁卢
“csc不是内部或外部命令,也不是可运行的程序,或批处理文件”
事实上为了迎回前妻电脑上已经装了最新版的vs2022了然后怎么会出现这种情况的呢,令人难过。原来是我们少配置了系统环境变量。就和所有的系统环境变量一样我们需要找到自己电脑上NET Framework安装的路径 把这个路径粘贴到path的最下方 我的路径是这个 大家可能大差不差
C:\Windows\Microsoft.NET\Framework\v4.0.30319

让我们执行优美的 csc 前妻.cs
在这里插入图片描述
编译出了一个前妻.exe文件 双击运行 。哦莫,这就是我们曾经相爱的证明
在这里插入图片描述

变量和常量

在C#中声明变量使用下述语法

datatype(类型) identifier(变量名);

C#强调安全性,简单来说C#编辑器需要用某个初始化值对变量进行初始化,之后才能在操作中引用该变量。大多数现代编辑器把没有初始化标记为警告,但C#编辑器把它当做错误来看待。(可以防止我们无意中从其他程序遗留下的内存中获取垃圾值)
c#确保变量在使用前进行了初始化的方法
1.变量是类或结构中的字段,如果没有显示格式化,创建这些变量时,其默认值是0
2.方法的局部变量必须在代码中初始化,之后才能在语句中使用它们的值。此时,初始化不是在声明变量时进行的,但编辑器会通过方法检查所有可能的路径。如果检测到局部变量在初始化之前就使用了它的值,就会产生错误。

在c#中实例化一个引用对象需要使用new关键字

xxx=new xxxyinyong()

在C#中声明常量使用如下语法
常量是指值再使用过程中不会发生变化的变量。在声明和初始化变量时加上const 就可以把该变量指定为一个常量

const datatype(类型) identifier(变量名)=1();

常量具有如下的特点
1.常量必须在声明时初始化。指定了其值后,就不能再改写了。
2.常量的值必须能再编译时用于计算。因此不能从一个变量提取值去作为常量
3.常量是静态的。但是不允许在常量声明中包含修饰符static

前妻更为严格的数据类型

与其他语言相比,C#对其可用的类型以及定义有更严格的描述
值类型和引用类型
值类型直接存储值,而引用类型存储对值的引用。
这两种上已经类型存储在内存的不同地方:值类型存储在堆栈中,而引用类型存储在托管堆上。

C#有15个预定义类型,其中13个是值类型,两个是引用类型(string,object)
1.整型 (8个)

名称 CTS类型 说明 范围
sbyte SByte 8位有符号整数 -128~127
short Int16 16位有符号整数 -32768~32767
int Int32 32位有符号整数 -2147483648~2147483647
long Int64 64位有符号整数 -9223373036854775808~922372036854775807
byte Byte 8位无符号整数 0~255
ushort Uint16 16位无符号整数 0~65535
unit Uint32 32位无符号整数 0~4294967295
ulomg Uint64 64位无符号整数 0~18446

2.浮点型(2个)

名称 CTS类型 说明 位数
float Single 32位单精度浮点数 7
double Double 64位双精度浮点数 15/16

3.decimal类型 更高精度的浮点数 (1个)

名称 CTS类型 说明 位数
decimal Decimal 128位高精度十进制表示法 28

4.bool类型 (1个)

名称 CTS类型 说明 位数
bool Boolean 表示true或false NA

5.字符类型(为了保存单个字符) (1个)

名称 CTS类型
char Char 16位的unicode字符

6.预定义的引用类型 (2个)

名称 CTS类型 说明
object Object 根类型,CTS中其他的类型都是从派生而来的包括值类型
string String Uniacode字符串

在C#中 object 类型就是最终的父类型,所有内置和用户自定义的类型都是从他派生而来的。
尽管C#中string赋值形式是一个值类型的赋值,但string实际上是一个引用类型。string对象被分配在堆上,而不是栈上。因此当把一个字符串变量赋予另一个字符串时,会得到堆内存中同一个字符串的两个引用。但是strinf与引用类型的常见行为有一些区别。例如,字符串是不可改变的,修改其中一个字符串,就会创建一个全新的string对象,而另一个字符串不发生任何变化。
在这里插入图片描述

–未完待续–

相关推荐

  1. 01.Verilog基础语法

    2024-01-29 12:44:03       23 阅读
  2. C语言基础练习——Day04

    2024-01-29 12:44:03       37 阅读
  3. C语言从头学02——基本语法概念

    2024-01-29 12:44:03       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-29 12:44:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-29 12:44:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-29 12:44:03       82 阅读
  4. Python语言-面向对象

    2024-01-29 12:44:03       91 阅读

热门阅读

  1. React Hooks 详解之 useState

    2024-01-29 12:44:03       63 阅读
  2. 【Spring Boot 3】【@Scheduled】动态删除定时任务

    2024-01-29 12:44:03       60 阅读
  3. uniapp+vue3+Ts(小兔仙项目)

    2024-01-29 12:44:03       59 阅读
  4. 每日一题 力扣365 水壶问题

    2024-01-29 12:44:03       45 阅读