【C#】C#编程基础:探索控制台应用与数据操作

embedded/2024/11/21 19:14:17/

文章目录

  • 前言:
  • 1. 控制台项目的使用
  • 2. 数值隐式类型转换与强制类型转换
    • 2.1 隐式类型转换
    • 2.2 数值强制转换
    • 2.3 字符串强制转换
    • 2.4 万能转换器
  • 3. 字符串与数组
    • 3.1 字符串处理方法
    • 3.2 数组的创建与遍历
    • 3.3 字符串与数组之间的使用方法
  • 4. 引用类型与值类型
  • 5. 常量const与枚举enum的使用
    • 5.1 常量const
    • 5.2 枚举enum
  • 总结:

前言:

本文旨在为C#语言的初学者提供一个全面的入门指南,涵盖了控制台项目的基本使用、数据类型的转换、字符串与数组的操作、引用类型与值类型的区别、常量与枚举的使用等多个方面。通过详细的代码示例和解释,读者可以逐步理解C#编程的基础知识,并为进一步的学习打下坚实的基础。

1. 控制台项目的使用

namespace QHD.ConsoleProject
{internal class Program{// 创建一个String类型变量,"Hallo world"private static string text = "hello world";static void Main(string[] args){// 1. 控制台写入的方法Console.WriteLine(text);// 2. 控制台读取的方法Console.ReadLine();}}
}

2. 数值隐式类型转换与强制类型转换

2.1 隐式类型转换

namespace QHD.ConvertProject
{/// <summary>/// 入口类/// </summary>internal class Program{/// <summary>/// 入口方法/// </summary>/// <param name="args"></param>static void Main(string[] args){// 1. 两种类型数据类型必须是值类型,sort、int、float、double...// 2. 转换的类型必须小于目标类型// 创建一个short类型变量short data = 10;        // 16位double temp = 20.5f;     // 64位double result = data + temp;  Console.WriteLine(result);Console.ReadLine();}}
}

2.2 数值强制转换

// 强制转换后,float类型小数丢失
float datal = 10.5f;
int result2 = (int)datal;
Console.WriteLine(result2); // 输出 10
Console.ReadLine();

2.3 字符串强制转换

namespace QHD.StringConvertProject
{internal class Program{static void Main(string[] args){// 1. 字符串强制转换应用场景:字符串转换为整型 int long 浮点型 float doublestring text1 = "你好,世界";string text2 = "10";int b = int.Parse(text2);Console.WriteLine(b); // WriteLine 最终都会转换成string类型进行转换Console.ReadLine();}}
}

2.4 万能转换器

namespace QHD.CommonConvertProject
{internal class Program{static void Main(string[] args){// 1.万能转换器使用场景:任何的数据类型时间的转换,都可以使用万能转换器string text1 = "20.5"; // 有效表达式"内容"float a = Convert.ToSingle(text1);int b = Convert.ToInt32(a);double c = Convert.ToDouble(b);Console.WriteLine(a);Console.WriteLine(b);Console.WriteLine(c);Console.ReadLine();}}
}

3. 字符串与数组

3.1 字符串处理方法

namespace QHD.StringTestProject1
{internal class Program{static void Main(string[] args){string text = "遵守中华人民共和国的各项道德法规";// 1. 获取字符串长度int len = text.Length;Console.WriteLine(len); // 16// 2. 获取某个字符串的索引int index = text.IndexOf("人");Console.WriteLine(index); // qq.com// 3. 字符串截取string text1 = "123456@qq.com";string result1 = text1.Substring(0, text1.IndexOf("@"));Console.WriteLine("截取的字符串:" + result1); // 123456string result2 = text1.Substring(text1.IndexOf("@")+1);Console.WriteLine("截取的字符串:" + result2); // qq.com// 4. 字符串的比较运算(只能做 相等/不相等 的判断)string text2 = "ABC";string text3 = "abc";Console.WriteLine("abc和ABC比较后的结果:" + (text2 == text3)); // False// 5. 字符串常用格式化方法string time = "12点29分";string date = "2024年11月16日";//  5.1 采用占位符的方式实现string result3 = string.Format("日期:{0} 时间:{1}", date, time);Console.WriteLine(result3); // 日期:2024年11月16日 时间:12点29分//  5.2 采用$去实现格式化string result4 = string.Format($"日期:{date} 时间:{time}");Console.WriteLine(result4); // 日期:2024年11月16日 时间:12点29分//  5.3 拼接string result5 = "日期:" + date + " 时间:" + time;Console.WriteLine(result5); // 日期:2024年11月16日 时间:12点29分//  5.4 格式化方法float value = 45.6789124f;Console.WriteLine($"{value}格式化后的值:" + value.ToString("0.00")); // 45.68Console.WriteLine($"{value}格式化后的值:" + value.ToString("f3")); // 45.679// 6.字符串处理方法//  6.1 普通拼接方法(每次拼接都会创建一个对象)string title = "";title += "你好";title += ",";title += "世界";title += "!";Console.WriteLine(title); // 你好,世界!//  6.2 高效拼接方法 (维护一段字符数组,按一定规则进行扩容)StringBuilder stringBuilder = new StringBuilder();stringBuilder.Append("你好");stringBuilder.Append(",");stringBuilder.Append("世界");stringBuilder.Append("!");stringBuilder.Insert(0, "哈哈, ");stringBuilder.Remove( 3, 4);stringBuilder.AppendFormat("  标题:{0}", "啦啦:");Console.WriteLine(stringBuilder.ToString()); // 哈哈,世界!  标题:啦啦:Console.ReadLine();}}
}

3.2 数组的创建与遍历

namespace QHD.ArrayTestProject1
{internal class Program{static void Main(string[] args){// 1. 班级名单创建一个数组// 方法1string[] names = new string[5] {"学生1", "学生2", "学生3", "学生4", "学生5"};// 方法2string[] names2 = new string[] { "学生1", "学生2", "学生3", "学生4", "学生5" };// 方法3 用数组初始化器直接创建string[] names3 = { "学生1", "学生2", "学生3", "学生4", "学生5" };// 方法4 string[] names4 = new string[5];names4[0] = "学生1";names4[1] = "学生2";names4[2] = "学生3";names4[3] = "学生4";names4[4] = "学生5";// 总结:数组的组成:标识符(数组的名称)、元素(成员)、类型(数据类型)、下标(索引、从0开始)// 2. 遍历数组:// 【1】for循环 for (int i = 0; i < 5; ++i){Console.WriteLine(names[i]);}// 【2】foreach循环foreach (string name in names){Console.WriteLine(name);}Console.ReadLine();}}
}

3.3 字符串与数组之间的使用方法

namespace QHD.StringAndArrayProject1
{internal class Program{static void Main(string[] args){// 1. 分割字符串:字符串转换为了字符串数组string title = "你们好_这里是_中国湖北宜昌";string[] titles = title.Split('_'); // 默认是按空格分割// 2. 重组字符串: 将字符串数组转换为字符串string title2 = string.Join(" ", titles);Console.WriteLine(title2); // 你们好 这里是 中国湖北宜昌Console.ReadLine();}}
}

4. 引用类型与值类型

namespace QHD.ValueAndCiteProject
{internal class Program{static void Main(string[] args){// 1. 值类型: 基本数据类型,比如int、float、double、bool...// 赋值的是变量的副本 比如a内存地址为0x0001 b内存地址为0x0002int a = 10;int b = 20;b = a;b = 30;Console.WriteLine("A的值:" + a + " B的值:" + b); // A的值:10 B的值:30// 2. 引用类型:数组、对象...// 传递的是变量的本身 比如array1内存存地址是0x0001 array内存地址0x0001int[] array1 = { 10, 20 };int[] array2 = array1;array2[0] = 5;// 输出Console.Write("Array1的值:");foreach (int item in array1){Console.Write(item + " ");} // Array1的值:5 20Console.Write("\nArray2的值:"); foreach(int item in array2){Console.Write(item + " ");} // Array2的值:5 20Console.ReadLine();}}
}

5. 常量const与枚举enum的使用

5.1 常量const

namespace QHD.ConstTestProject
{internal class Program{// 成员常量(私有的)private const int constValue2 = 30;static void Main(string[] args){// 变量:变化的量// 常量:定义时要赋值,后面程序执行的过程中是不可以改变其值// 1.局部的常量const int constValue = 10;int result = 10 + constValue;Console.WriteLine("10 + 10的运算结果:" + result);// 2. 成员常量测试Console.WriteLine(Test1());Console.ReadLine();}private static int Test1(){return 20 + constValue2;}}
}

5.2 枚举enum

namespace QHD.EnumTestProject
{internal class Program{public enum ColorText{红色,  // 0黄色,  // 1蓝色   // 2}static void Main(string[] args){// 1.枚举类型的意义:表达一个有范围的变量,每个枚举类型对应一个索引(取字符串/整型)// 2.定义方法:必须用public访问权限,使用关键字enum// 3.测试string text1 = ColorText.黄色.ToString();int index = (int)ColorText.黄色;Console.WriteLine(text1); // 黄色Console.WriteLine(index); // 1// 4.案例Console.WriteLine("请选择颜色:(0为红色,1为黄色,0为蓝色)");int index2 = Convert.ToInt32(Console.ReadLine());string text2= Enum.GetName(typeof(ColorText), index2);Console.WriteLine(text2);Console.ReadLine();}}
}

总结:

本文详细介绍了C#编程中的一些核心概念和常用操作。首先,我们探讨了控制台项目的使用方法,包括如何在控制台中输入和输出数据。接着,我们深入讨论了数值的隐式类型转换和强制类型转换,以及字符串的强制转换和万能转换器的使用。文章还涉及了字符串处理方法、数组的创建与遍历,以及字符串与数组之间的转换技巧。此外,我们区分了引用类型和值类型,并讨论了它们在内存中的存储和传递方式。最后,我们介绍了常量和枚举的使用,这些是C#中定义固定值和有限选项集的重要工具。通过这些内容的学习,读者应该能够掌握C#编程的基础,并能够应用到实际的编程工作中。


http://www.ppmy.cn/embedded/139406.html

相关文章

实验室管理自动化:Spring Boot技术的应用

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理实验室管理系统的相关信息成为必然。开发合…

[js] 0.1+0.2

0.10.2≠0.3?? 无可避免的浮点误差 【前端面试】为什么 0.1 0.2 不等于 0.3 计算机是通过二进制的方式存储数据的&#xff0c;所以计算机计算 0.1 0.2 的时候&#xff0c;实际上是计算的两个数的二进制的和。0.1 的二进制是0.0001100110011001100…&#xff08;1100 循环&…

springboot嗨玩旅游网站

摘 要 嗨玩旅游网站是一个专为旅行爱好者打造的在线平台。我们提供丰富多样的旅游目的地信息&#xff0c;包括景点信息、旅游线路、商品信息、社区信息、活动推广等&#xff0c;帮助用户轻松规划行程。嗨玩旅游网站致力于为用户提供便捷、实用的旅行服务&#xff0c;让每一次旅…

UniApp在Vue3下使用setup语法糖创建和使用自定义组件

UniApp在Vue3下使用setup语法糖创建和使用自定义组件 在现代前端开发中&#xff0c;Vue 3 的 <script setup> 语法糖极大地简化了组件的编写和使用。本文将详细介绍如何在 UniApp 中使用 Vue 3 的 <script setup> 语法创建自定义组件&#xff0c;并在其他组件中使…

在CentOS 7上配置Nginx的TCP端口转发

在现代网络环境中,TCP端口转发是一项非常重要的功能,它允许你将网络流量从一个端口或地址转发到另一个端口或地址。Nginx作为一个高性能的HTTP和反向代理服务器,同时也支持TCP/UDP流量的转发,这得益于其内置的stream模块。本文将详细介绍如何在CentOS 7上安装Nginx,并配置…

攻防世界-mfw

进入题目以后可以点击三个网页&#xff0c;这三个网页其中有一个提示我们git、php、Bootstrap。可以联想到是git泄露 在url后面的参数改为.git 存在git漏洞&#xff0c;这时候就可以利用python的githacker库下载泄漏的文件 查看index.php的源代码 <?phpif (isset($_GET[pa…

uniapp开发微信小程序笔记4-自定义组件

前言&#xff1a;本文重点记录的是uniapp如何封装一个自定义组件&#xff0c;以swiper组件为例。 一、创建组件目录 官方文档中的easycom组件规范中可以看到这样一句话&#xff1a; 只要组件安装在项目的components目录下或uni_modules目录下&#xff0c;并符合components/组…

2、PyTorch张量的运算API(上)

1. 教学视频 2、PyTorch张量的运算API&#xff08;上&#xff09; 因比较忙&#xff0c;暂时就做个过场吧。 2. Python代码 Python #!/usr/bin/env python # -*- coding:utf-8 -*- # FileName :torch_learn2.py # Time :2024/11/16 19:53 # Author :Jason Zhangi…