2,884
社区成员
😄大家好,我是writer桑,前面一章已经学习了 C# 的数据类型,那本章就开始学习C# 程序中变量与常量的使用,希望看完大家能够有所收获,感谢支持!
变量用来存储信息,而变量名就是一个供程序操作存储区的名字。每个变量都有一个特定的类型,类型决定了变量内存的大小和布局, 变量的值存储在内存中,在允许的范围内可以对变量进行一系列的操作。
C# 变量定义的语法: ;
一些有效的变量定义示例代码:
// 整数、字符、浮点数、字符串类型的定义;
int i, j, k;
char c, ch;
float f, salary;
string s;
变量初始化赋值语法:** = value;**
我们可以在变量定义时进行初始化:
// 定义变量并初始化
int i = 11;
char c = 'A';
float f = 1.1f;
string s = "hello,world";
C # 定义了七种类型的变量:静态变量、实例变量、数组元素、值参数、引用参数、输出参数和局部变量。 下面分别介绍其中每个类别。
代码理解:
class Example
{
public static int x;
int y;
void ExampleMethod(int[] v, int a, ref int b, out int c)
{
int i = 1;
c = a + b++;
}
}
x 是静态变量, y 是实例变量, v[0] 是数组元素,a 是值参数, b 是引用参数,c 是输出参数, i 是局部变量。
在 C# 程序中使用 static 关键字声明的字段为静态变量,静态变量它不需要实例化对象来引用,可以直接使用类名来引用。静态变量的默认值是变量类型的默认值0, 同时静态变量随着所属应用程序的结束而停止存在。
没有用 static 关键字声明的字段为实例变量,与静态变量不同的是实例变量它必须创建类对象才可以通过对象来引用变量。同时实例变量的初始值为变量类型的默认值0。
一组具有同一属性的数据就称为数组,是最常见的数据结构之一。当创建数组实例时,数组的元素就已存在, 数组元素初始值都是默认值0。在没有对该数组实例的引用时停止存在;
没有使用 ref 或 out 关键字修饰的参数为值参数, 值参数所属的函数成员 (方法、实例构造函数、访问器或运算符) 或匿名函数在开始调用时而存在并进行初始化值,当函数成员或匿名函数返回时值参数就停止存在。
使用修饰符 ref 声明的参数为引用参数,引用参数不会创建新的存储空间,相反,引用参数与所属函数成员或匿名函数调用中的参数的变量表示相同的存储位置。
使用修饰符 out 声明的参数为输出参数, 同样输出参数不会创建新的存储空间, 相反,输出参数与函数成员或委托调用中的参数有着相同存储位置。 因此,输出参数的值始终与基础变量相同。
顾名思义局部变量就是只在局部的“代码块”内有效的变量,局部变量经常出现在 for 语句、if 语句或 using 语句等等。局部变量的生存期是程序执行的一部分,实际生存期取决于程序的具体实现。
在 C# 程序中可以使用 System 命名空间中 Console 类的 Readline 方法 和 WriteLine 方法实现接收变量并输出。
以下面程序的实现为示例:
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请问您喜欢什么编程语言?");
string language = Console.ReadLine();
Console.WriteLine($"我也喜欢用{language}"); // 我也喜欢用C#
Console.ReadKey();
}
}
常量是不可变的值,在编译时是已知的,在程序的生命周期内不会改变。 常量使用 const 修饰符声明。 仅 C# 内置类型(不包括 System.Object)可声明为 const。 用户定义的类型(包括类、结构和数组)不能为 const。 同时也可以使用 readonly 修饰符创建在运行时一次性(例如在构造函数中)初始化的类、结构或数组,此后不能更改。
常量定义的语法: const = value; 或 readonly = value;
如何在 C# 中定义常量示例程序:
static class Constants
{
public const double Pi = 3.14159;
public const int SpeedOfLight = 300000;
}
class Program
{
static void Main()
{
double radius = 5.3;
double area = Constants.Pi * (radius * radius);
int secsFromSun = 149476000 / Constants.SpeedOfLight;
Console.WriteLine(secsFromSun); // 498
}
}
整数常量可以是十进制、二进制、八进制或十六进制的常量, 其中前缀的使用:
四种进制的代码示例:
const int decimalLiteral = 42; // 十进制
const int binaryLiteral = 0b_0010_1010; // 二进制
const int octalLiteral = 0213; // 八进制
const int hexLiteral = 0x2A; // 十六进制
使用浮点数常量必须包含小数点、指数或同时包含两者。使用指数形式必须包含整数部分、小数部分或同时包含两者。有符号的指数是用 e 或 E 表示的。 浮点常量通常用来表示时间、日期等需要精确到小数点后几位的结果,且结果不能修改。
一些浮点常量的实例:
const float time = 11.11f;
const float price = 9.99f;
const double data = 11.11;
const double pi = 3.1415926;
字符常量是指用一对单引号括起来的一个字符,如’a’,‘9’,字符常量中的单引号只起定界作用并不表示字符本身。 在 C# 程序中字符常量的主要表示有普通字符 ‘b’、转义序列 ‘\t’、通用字符 ‘\u02C0’。
列举C# 中字符串转义序列:
转义序列字符名称Unicode 编码\’单引号0x0027"双引号0x0022\反斜杠0x005C\0null0x0000\a警报0x0007\bBackspace0x0008\f换页0x000C\n换行0x000A\r回车0x000D\t水平制表符0x0009\v垂直制表符0x000B\uUnicode 转义序列 (UTF-16)\uHHHH(范围:0000 - FFFF;示例:\u00E7 =“ç”)\UUnicode 转义序列 (UTF-32)\U00HHHHHH(范围:000000 - 10FFFF;示例:\U0001F47D = “👽”)\x除长度可变外,Unicode 转义序列与“\u”类似\xH[H][H][H](范围:0 - FFFF;示例:\x00E7、\x0E7 或 \xE7 =“ç”
使用字符常量转义序列的示例
class Program
{
static void Main()
{
Console.WriteLine("Hello,\t\n world");
Console.ReadLine();
}
}
字符串常量是一对双引号括起来的字符序列,与字符常量不同的地方在于表达形式、含义和内存。字符串常量的声明是括在双引号“”里,或者使用@“” 表示取消字符串中的转义符 。字符串常量常用于用户程序输入信息、 程序向用户显示信息等。
各种形式的字符串常量实现:
const string str0 = "hello, C#"; // hello, C#
const string str1 = @"hello, C#"; // hello, C#
const string str2 = "hello \t C#"; // hello C#
const string str3 = @"hello \t C#"; // hello \t C#
const string str4 = "Joe said \"Hello\" to me"; // Joe said "Hello" to me
const string str5 = @"Joe said ""Hello"" to me"; // Joe said "Hello" to me
const string str6 = "\\\\server\\share\\file.txt"; // \\server\share\file.txt
const string str7 = @"\\server\share\file.txt"; // \\server\share\file.txt
const string str8 = "one\r\ntwo\r\nthree";
const string str9 = @"one
two
three";
✔️ 以上就是对 C# 程序中变量与常量的使用,希望能够对大家有所帮助。望大家多多支持,你们的支持就是笔者创作最大的动力!
文章来源: https://blog.csdn.net/weixin_61361738/article/details/128989509
版权声明: 本文为博主原创文章,遵循CC 4.0 BY-SA 知识共享协议,转载请附上原文出处链接和本声明。