C#枚举类型、枚举类型与其他类型转换、结构类型、数组类型和可空类型
1、 C#中的常量用constant标定,不能改变或赋值;
2、枚举类型
[public ] enum 枚举名 // 访问标识符、枚举关键字、枚举名(符合Pascal命名规范)
{
值1,
值2,(最后这个英文半角,可有可无)
}
枚举类型的声明:
将枚举类型的声明到命名空间的下面,类的上面,所有命名空间下面的类都可以使用此枚举类型;
枚举类型就是一个简单的变量类型。
例如:
public enum Gender
{
男,
女
}
Gender gender=Gender.男;
3 枚举类型与其他类型的转换:
//枚举类型默认为可以与int类型转换,所以可以使用强制类型转换。
//枚举类型---->int:
int num=(int)gender; //可以得到num值为0,枚举类型中默认以0开始,可以改变。
//int---->枚举类型:
int n=1;Gender gen=(Gender).n; //这里可以得到gen='女';
注意:
n值超过枚举值时,则保留原来的值,不进行转换,系统不报错。
枚举类型与string类型的转换
注意:所有的类型都可以转换为string类型,使用ToString()函数。
int n1=10;string str=n1.ToString();string str=Gender.'男'.ToString(); // 得到“男”这个字符串
string---->enum类型:
将字符转换为枚举类型,不能进行强制类型转换,因为枚举类型不确定。使用函数Enum.Parse(): 相当于int.Parse()
(要转换的枚举类型)Enum.Parse(typeof(要转换的枚举类型),“要转换的字符串”);
string s="男";
Gender ge=(Gender)Enum.Parse(typeof(Gender),s); 注意:要转换的字符串在枚举类型中有输出枚举值,否则会出现异常。
结构类型
1 结构:可以一次性声明多个不同类型的变量;
2
public struct 变量名
{
public string_name; (字段)
public int _age;
public char_gender;
}
//相当于自定义了一个类型,结构和枚举都是自己定义的类型。若结构中的元素没有public,则在类中无法访问。
//结构中使用了字段(用_(以下划线开始)表示)。
字段与变量的区别:字段可以存多个值,变量只能存储一个值。
数组类型
1 一次性声明多个类型相同的变量-----数组。
2 数组类型[ ] 数组名=new数组类型 [数组长度];// 表明了在内存中开辟了数组长度个空间
int [ ] nums=new int [ 10 ]; 为赋值时,默认为0;
string [ ] strn=new string [ 10 ]未赋值时,为NULL,表明为在内存中开辟空间;string 数组为空时,表明已开辟了空间。
bool [ ] bools=new bool [ 10 ] 位赋值时,默认为FALSE;
数组类型的两种使用初始化方式:
A: bool [ ] bools=new bool [ 10 ] ; bools={0,1,0,0}
B: bool [ ] bools={ 0,1,0,0 };
可空类型(Nullable)
1C# 单问号 ? 与 双问号 ??
(1)? : 单问号用于对 int,double,bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 NullAble 类型的。
int? i = 3
等同于
Nullable<int> i = new Nullable<int>(3);
int i; //默认值0
int? ii; //默认值null
(2)?? : 双问号 可用于判断一个变量在为 null 时返回一个指定的值。
(3)C# 可空类型(Nullable)
C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。
例如,Nullable< Int32 >,读作"可空的 Int32",可以被赋值为 -2,147,483,648 到 2,147,483,647 之间的任意值,也可以被赋值为 null 值。类似的,Nullable< bool > 变量可以被赋值为 true 或 false 或 null。
在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用。例如,数据库中的布尔型字段可以存储值 true 或 false,或者,该字段也可以未定义。
声明一个 nullable 类型(可空类型)的语法如下:
< data_type> ? <variable_name> = null;
实例:
using System;
namespace CalculatorApplication
{
class NullablesAtShow
{
static void Main(string[] args)
{
int? num1 = null;
int? num2 = 45;
double? num3 = new double?();
double? num4 = 3.14157;
bool? boolval = new bool?();
// 显示值
Console.WriteLine("显示可空类型的值: {0}, {1}, {2}, {3}",
num1, num2, num3, num4);
Console.WriteLine("一个可空的布尔值: {0}", boolval);
Console.ReadLine();
}
}
}
上面的案例产生的结果是:
显示可空类型的值: , 45, , 3.14157
一个可空的布尔值:
上一篇: nio按行读文件