当前位置: 首页 > article >正文

【从零开始入门unity游戏开发之——C#篇42】C#补充知识——随机数(Random)、多种方法实现string字符串拼接、语句的简写

文章目录

  • 一、随机数
    • 1、`Random.Next()`生成随机整数
      • 示例:生成一个随机整数
      • 生成指定范围内的随机整数
    • 2、`Random.NextSingle`生成随机浮点数
      • 示例:生成随机浮点数
    • 3、 生成随机字母或字符
      • 示例:生成随机字母
      • 示例:生成随机小写字母
  • 二、string字符串拼接
    • 1、通过`+`号来进行字符串拼接
      • 示例:
      • 注意事项:
    • 2、使用复合运算符`+=`进行字符串拼接
      • 示例:
      • 注意事项:
    • 3、`string.Format`进行字符串拼接
      • 示例:
      • 优点:
      • 注意事项:
    • 4、使用 String.Concat 进行字符串拼接
      • 示例:
      • 优点:
    • 5、使用`$`内插字符串
      • 示例:
  • 三、语句的简写
    • 1、单行语句的简写
    • 2、属性简写
    • 3、方法简写
  • 专栏推荐
  • 完结

一、随机数

在 C# 中,生成随机数通常使用 Random 类。Random 类提供了一些方法来生成不同类型的随机数,比如整数、浮点数等。

特点:左包含,右不包含

1、Random.Next()生成随机整数

要生成随机整数,可以使用 Random 类的 Next() 方法。

示例:生成一个随机整数

Random random = new Random();
int randomNumber = random.Next(); // 生成一个非负整数
Console.WriteLine(randomNumber);

生成指定范围内的随机整数

可以通过 Next(int minValue, int maxValue) 方法指定生成随机数的范围。minValue 是随机数的最小值(包含),maxValue 是随机数的最大值(不包含)。

Random random = new Random();
int randomInRange = random.Next(1, 100); // 生成 1 到 99 之间的随机整数
Console.WriteLine(randomInRange);

2、Random.NextSingle生成随机浮点数

如果需要生成随机的浮点数,可以使用 NextSingle() 方法,返回大于或等于0.0且小于1.0的随机浮点数。

示例:生成随机浮点数

Random random = new Random();
float randomFloat = random.NextSingle(); // 生成一个 0.0 到 1.0 之间的随机浮点数
Console.WriteLine(randomFloat);//比如返回0.49565697

3、 生成随机字母或字符

可以通过随机生成字符的 ASCII 码来生成随机字母。

示例:生成随机字母

Random random = new Random();
char randomChar = (char)random.Next('A', 'Z' + 1); // 生成大写字母
Console.WriteLine(randomChar);

示例:生成随机小写字母

Random random = new Random();
char randomChar = (char)random.Next('a', 'z' + 1); // 生成小写字母
Console.WriteLine(randomChar);

二、string字符串拼接

在 C# 中,字符串拼接有多种方式,每种方法都有不同的使用场景和性能表现。

1、通过+号来进行字符串拼接

这是最直接且常见的字符串拼接方式。你可以通过 + 运算符将两个或多个字符串连接在一起。

示例:

int i = 100;
string str = "你考了" + i + "分";
Console.WriteLine(str);

打印结果
在这里插入图片描述
注意字符串加数字的区别

string str = "123";
str = str + 1 + 2 + 3;
Console.WriteLine(str);  // 输出 "123123"
string str = "123";
str = str + (1 + 2 + 3);  // 1 + 2 + 3 = 6,所以 str 变为 "1236"
Console.WriteLine(str);  // 输出 "1236"

注意事项:

  • + 运算符每次拼接字符串时,都会生成新的字符串对象。这可能会导致性能问题,尤其是在循环中进行多次拼接时。
  • 字符串是不可变的,每次拼接时都会创建一个新的字符串对象,导致内存分配的开销。

2、使用复合运算符+=进行字符串拼接

+= 是一种复合赋值运算符,类似于 +,但它将拼接的结果赋值回原来的变量。这种方式和 + 运算符类似,但通常用于在已有字符串的基础上进行累加。

示例:

string str = "123";
str += 1 + 2 + 3 + 4;  // str 进行累加操作,1 + 2 + 3 + 4 = 10,所以 str 变为 "12310"
Console.WriteLine(str);  // 输出 "12310"
string str = "123";
str += "" + 1 + 2 + 3 + 4;  // 这里会先将 "" 和 1 拼接成 "1",然后 "1" 和 2 拼接成 "12",依此类推,最后 str 变为 "1231234"
Console.WriteLine(str);  // 输出 "1231234"
string str = "123";
str += "" + 1 + 2 + "" + (3 + 4);//优先计算括号内容
Console.WriteLine(str);  // 输出 "123127"

注意事项:

  • 与 + 运算符类似,+= 也会在每次拼接时创建新的字符串对象,因此在循环中频繁使用 += 拼接大量字符串时,也可能会导致性能问题。

3、string.Format进行字符串拼接

string.Format 方法可以将多个变量插入到一个格式化字符串中,是一种更具可读性和灵活性的拼接方式。你可以使用占位符 {0}, {1}, {2} 等将参数插入到格式化的字符串中。

示例:

string str1 = "Hello";
string str2 = "World";
string result = string.Format("{0} {1}", str1, str2);  // 使用 string.Format 拼接
Console.WriteLine(result);  // 输出 "Hello World"

优点:

  • string.Format 提供了更强大的格式化功能,比如日期格式化、数字格式化等,适用于更复杂的字符串拼接场景。
  • 它比 + 运算符和 += 更具可读性,尤其是在需要插入多个变量时。

注意事项:

  • 相对于 ++=string.Format 在性能上略有优势,尤其是当需要格式化多个变量时。

4、使用 String.Concat 进行字符串拼接

专门用于拼接多个字符串。它的性能比 + 运算符更高,尤其是在大量拼接字符串时。

示例:

string str1 = "Hello";
string str2 = "World";
string result = string.Concat(str1, " ", str2);  // 使用 String.Concat 拼接
Console.WriteLine(result);  // 输出 "Hello World"

优点:

  • String.Concat 比 + 运算符在性能上更高效,尤其是当需要拼接多个字符串时。
  • 它不会自动插入空格或其他字符,需要手动指定。

5、使用$内插字符串

C# 6.0 引入了字符串插值功能,可以更简洁地在字符串中嵌入变量。它使用 $"..." 语法,允许直接在字符串中插入变量或表达式。

示例:

string str = "向宇的客栈";
int num = 100;
Console.WriteLine($"来{str}学习C#知识,随便{num}分");

在这里插入图片描述


三、语句的简写

1、单行语句的简写

ifforforeachwhile 等语句中只有单个语句时,C# 允许省略大括号 {},直接写一行代码。这在某些情况下可以提高代码简洁性,但需要确保不会因为省略大括号导致逻辑混乱。

  • 示例:if 语句简写

    if (true) 
        Console.WriteLine("true");
    
    if (true) Console.WriteLine("true");
    
  • 示例:for 循环简写

    for (int i = 0; i < 10; i++) 
    	Console.WriteLine(i);
    
  • 示例:foreach 循环简写

    foreach (int i in new int[] { 1, 2, 3 }) 
    	Console.WriteLine(i);
    
  • 示例:while 循环简写

    while (true) 
    	Console.WriteLine("true");
    

2、属性简写

在 C# 中,属性可以用更加简洁的语法来表示,特别是当属性的 get 访问器只有一行代码时。通过使用箭头 => 运算符,可以简化属性的书写。

普通属性写法(带 get 和 set)

public int z {
    get {
        return x + y;
    }
}

简写属性写法(带箭头)

public int z => x + y;

这是一种简洁的写法,省去了 get 访问器的传统花括号和 return 关键字。当属性的返回值是单个表达式时,可以使用这种简写方式。

3、方法简写

C# 还支持方法的简写。当方法体只有一行代码时,可以使用箭头 => 来简化方法的定义。

  • 不带参数方法简写

    普通方法写法

    public int TestMethod() {
        return x + y;
    }
    

    简写方法写法

    public int TestMethod() => x + y;
    
  • 带参数方法简写

    带参数的方法写法

    public int TestMethod(int x, int y) {
        return x + y;
    }
    

    简写带参数的方法

    public int TestMethod(int x, int y) => x + y;
    
  • void 类型无返回值方法简写

    普通 void 方法写法

    public void TestMethod2() {
        Console.WriteLine("test");
    }
    

    简写 void 方法写法

    public void TestMethod2() => Console.WriteLine("test");
    

专栏推荐

地址
【从零开始入门unity游戏开发之——C#篇】
【从零开始入门unity游戏开发之——unity篇】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架开发】

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!如果你遇到任何问题,也欢迎你评论私信或者加群找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~
在这里插入图片描述


http://www.kler.cn/a/467773.html

相关文章:

  • DeepSeek重新定义“Open“AI
  • 03、MySQL安全管理和特性解析(DBA运维专用)
  • THREE.js的VideoTexture以及CanvasTexture在部分浏览器以及小程序webview中纯黑不起作用的解决办法
  • Spring MVC实战指南:构建高效Web应用的架构与技巧(三)
  • ChatGPT 主流模型GPT-4/GPT-4o mini的参数规模是多大?
  • SQL—Group_Concat函数用法详解
  • 我用AI学Android Jetpack Compose之理解声明式UI
  • Jmeter-性能测试工具的安装教程
  • 计算机网络知识总结-网络安全
  • 如何单独安装 MATLAB 工具箱
  • 三甲医院等级评审八维数据分析应用(五)--数据集成与共享篇
  • 在swiftui中使用Alamofire发送请求获取github仓库里的txt文件内容并解析
  • 芯片引脚类型检测数据集VOC+YOLO格式582张5类别
  • 【小程序】5分钟快速入门抓包微信小程序
  • 短信通知在 IOS 17/18 中不起作用?这是修复方法
  • Scala_【4】流程控制
  • 封装的作用
  • CentOS 8 上搭建SFTP服务
  • C++软件设计模式之中介者模式
  • 检索增强生成 和思维链 结合: 如何创建检索增强思维链 (RAT)?
  • 基于feapder爬虫与flask前后端框架的天气数据可视化大屏
  • 【TCP】SYN、ACK、FIN、RST、PSH、URG的全称
  • STM32 拓展 低功耗案例3:待机模式 (hal)
  • 网络IP协议
  • 算法解析-经典150(链表、二叉树)
  • 《学校一卡通管理系统》数据库MySQL的设计与实现