C# 常量、枚举、结构
2021/9/11 17:04:45
本文主要是介绍C# 常量、枚举、结构,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
常量
使用关键字const修饰即可:
- const int num =32;
枚举
创建枚举变量方式:
[public] enum Gender { man, woman, male, female } [public] enum QqState { Online=4, Offline=2, Busy=30, QMe=1 } //[public] 表示可选
Remark:枚举类型需要放置在命令空间或者类里面,不能放在Main函数里面,大多放在命令空间里
枚举类型与其他类型的转换
枚举类型与int类型的转换
将枚举类型强制转换成为int类型,需要注意int类型和枚举类型是相互兼容的,所以可以通过强制类型转换的语法互相转换
当转换一个枚举中没有的值的时候,不会抛出异常,而是 直接将数字显示出来
枚举 ==> int
Gender gender = Gender.man; Console.WriteLine(gender); int num0 = (int)Gender.man; Console.WriteLine(num0); int num1 = (int)Gender.woman; Console.WriteLine(num1); int num2 = (int)Gender.male; Console.WriteLine(num2); Console.WriteLine((int)Gender.female); //如果在枚举中设置了枚举变量的值,如这里将在枚举中设置 man=3,于是强转后man=3,后面几个则依次+1,即woman=4
int ==> 枚举
如果将int转为枚举类型时,枚举类型的大小包含这个int的值,则对应转换成该枚举变量,int的值在枚举类型大小值之外,则仍然是原来的int的值的大小
int n1 = 4; Gender gender = (Gender)n1; Console.WriteLine(n1); Console.WriteLine(gender);
枚举 ==> string
枚举类型与string类型的转换,注意任何类型都可以转换成为string类型,利用ToString去转
Gender gender = Gender.woman; Console.WriteLine(gender.ToString());
string ==> 枚举
前面介绍了Convert.ToInt32(), int.parse() ,int.TryParse()
如果字符串在枚举里没有对应的转换对象,对于整数而言直接返回数字,对于字符串(小数在这里也是字符串)程序不会中断但会在结果中显示没有找到
string s = "asddfas"; Gender gender2 = (Gender)Enum.Parse(typeof(Gender), s); Console.WriteLine(gender2);
Remark :当手动给枚举指定数值时,可以任意指定枚举变量对应的数值
枚举练习
Q :选择您的QQ状态
A :
namespace ConsoleApp1 { class Program { static void Main(string[] args) { Console.WriteLine("请选择您的QQ状态,1-Online,2-Offline,3-Busy,4-QMe"); string str= Console.ReadLine(); switch (str) { case "1": QqState s1 = (QqState)Enum.Parse(typeof(QqState), str); Console.WriteLine(s1); break; case "2": QqState s2 = (QqState)Enum.Parse(typeof(QqState), str); Console.WriteLine(s2); break; case "30": QqState s3 = (QqState)Enum.Parse(typeof(QqState), str); Console.WriteLine(s3); break; case "4": QqState s4 = (QqState)Enum.Parse(typeof(QqState), str); Console.WriteLine(s4); break; } #endregion } } public enum QqState { Online=1, Offline, Busy, QMe } }
结构
结构可以帮助我们一次性声明多个不同类型的变量,放在命令空间里
语法:
[public] struct nameofStruct(结构名) { 成员; } public struct Person { string name; int age; char gender; }
结构练习
using System; namespace ConsoleApp1 { public struct Mycolor { public int _red; public int _green; public int _blue; } class hello { static void Main(string[] args) { //定义一个结构叫Mycolor,有三个成员变量,分别定义为int类型的red,green,blue //声明一个Mycolor类型的变量,并对其成员赋值,是其表示一个红色 Mycolor mc; mc._red = 255; mc._blue = 0; mc._green = 0; } } }
using System; //using system.collections.generic; //using system.linq; //using system.text; //using system.threading.tasks; namespace ConsoleApp1 { public struct Person { //使用 _ 是为了区分字段和变量 public string _name;//字段,可以存很多值,不叫变量(只能存储一个值) public int _age; public Gender _gender; } public enum Gender { 男, 女 } class Program { static void Main(string[] args) { Person zsPerson; zsPerson._name = "张三"; zsPerson._age = 18; zsPerson._gender = Gender.男; Person lsPerson; lsPerson._name = "李四"; lsPerson._age = 19; lsPerson._gender = Gender.女; } } }
这篇关于C# 常量、枚举、结构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#