C# Class And Struct

有事没事多看看 .NET API 浏览器

一、Random Class

随机数:.NET Frameword中提供了一个专门产生随机数的类System.Random,此类默认情况下已被导入,编程过程中可以直接使用

方法:
Next()        返回一个非负随机整数
Next(Int32)      返回一个小于所指定最大值的非负随机整数  Next(0)返回0	
Next(Int32, Int32) 返回在指定范围内的任意整数

NextDouble()    大于或等于 0.0 且小于 1.0 的双精度浮点数
  Random rnd = new Random();     
  number = rnd.NextDouble();
Random random = new Random();
int num1 = random.Next();
int num2 = random.Next(20);
int num3 = random.Next(90,100);
double num4 = random.NextDouble();

二、String Class

1. 属性

  • Length:str.Length

2. 方法

  • Equals(String):确定此实例是否与另一个指定的 String 对象具有相同的值,返回 bool

  • Substring(Int32):从此实例检索子字符串,子字符串在指定的字符位置开始并一直到该字符串的末尾

  • Substring(Int32, Int32):从此实例检索子字符串,子字符串从指定的字符位置开始且具有指定的长度,在字符串中的第一个字符位于索引0,不为索引1

String类型转化为Int类型

int intStr = 0;
1)intStr = int.Parse(str);
2)intStr = Convert.ToInt32(str);

注意:str必须是正整数字符串,不能为 "" 或者 "ab123" 等字符类型,不然会出现 “输入字符串的格式不正确” 的报错


三、Int32 Int64 Double Struct

1. Int32 / Int64 表示 32/64 位带符号整数
方法:

  • Parse(String):将数字的字符串表示形式转换为它的等效 32/64 位有符号整数;

  • Parse(String, NumberStyles):将指定样式的数字的字符串表示形式转换为它的等效 32/64 位有符号整数;

  • ToString():将此实例的数值转换为其等效的字符串表示形式;

  • ToString(String):使用指定的格式,将此实例的数值转换为它的等效字符串表示形式。

2. Double 表示一个双精度浮点数

方法:

  • Parse(String):将数字的字符串表示形式转换为它的等效双精度浮点数;

  • Parse(String, NumberStyles):将指定样式的数字的字符串表示形式转换为它的等效双精度浮点数;

  • ToString():将此实例的数值转换为其等效的字符串表示形式;

  • ToString(String):使用指定的格式,将此实例的数值转换为它的等效字符串表示形式。

3. 字符串保留小数

字符串保留小数点后一位   .ToString("0.0")

字符串保留小数点后两位   .ToString("0.00")

四、Convert Class

将一个基本数据类型转换为另一个基本数据类型

.ToChar(Object)	
	将指定对象的值转换为 Unicode 字符

.ToDateTime(String)	
	将日期和时间的指定字符串表示形式转换为等效的日期和时间值
.ToDateTime(Object)
	将指定对象的值转换为 DateTime 对象

.ToDouble(String)	
	将数字的指定字符串表示形式转换为等效的双精度浮点数
.ToDouble(Object)	
	将指定对象的值转换为双精度浮点数

.ToInt32(String)	
	将数字的指定字符串表示形式转换为等效的 32 位带符号整数
.ToInt32(Object)	
	将指定对象的值转换为 32 位带符号整数

.ToString(Object, IFormatProvider)	
	使用指定的区域性特定格式设置信息将指定对象的值转换为其等效的字符串表示形式

五、ToString 和 Convert.ToString 的区别

一般情况下,这两种方法都可以通用,但是当返回的数据类型中有可能出现null值时如果调用ToString()方法,就会返回NullReferenceException,除非你要捕捉此异常再做处理,否则在这种情况下就应考虑使用Convert.ToString()方法了,因为Convert.ToString(null)不会抛出异常而是返回null。

C# ToString()和Convert.ToString()的区别


六、Convert.ToInt32() 与 int.Parse() 的区别

Convert.ToInt32 : 将其他类型的数据强制转换成int格式,即整形数据。
在 C# 中,int其实就是 System.Int32,即都是32位的。但是(int) 和 Convert.ToInt32 是两个不同的概念,前者是类型转换,而后者则是内容转换,它们并不总是等效的。

 C# 提供类型检查,不能把一个 string 强制转换成 int,例如下面的代码:
string text = “1314”; int id = (int)text;
因为 string 和 int 是两个完全不同并且互不兼容的类型。其实,能够使用 (int) 进行强类型转换的只能是数值类型,例如 long、short、double等,不过进行这种转换时你需要考虑精度问题。
如:string text = “1314”;
int id = Convert.ToInt32(text); 即可。

 Convert.ToInt32()和int.Parse()只能是整型字符串类型(即各种整型ToString()之后的形式,不能为浮点型,否则int.Parse()就会出现输入的字符串格式不正确的错误)eg:int i=Convert.ToInt32(“4.56”);会报错

区别:
1)对null值的处理
  Convert.ToInt32(null) 会返回0而不会产生任何异常
  int.Parse(null) 会产生异常报错

2)对数据进行四舍五入
  Convert.ToInt32(double value),对数据进行四舍五入
  int.Parse("4.5")  直接报错:"输入字符串的格式不正确".

3)对被转换类型的区别
  int.Parse 是转换 String 为 int
  Convert.ToInt32是转换继承自Object的对象为int(可以有很多其它类型的数据),如想把一个object对象转换为int,int.Parse不行,只能用Convert.ToInt32.

七、TimeSpan Struct

C#用TimeSpan求时间差:

DateTime t1 = DateTime.Parse("2018-10-07 12:30:00");
DateTime t2 = DateTime.Parse("2017-10-07 ");

//两个时间相减 。默认得到的是两个的时间差  格式如:365.10:35:25  
TimeSpan t3 = t1 - t2;  
Console.WriteLine(t3);

//将这个天数转换成天数, 返回值是double类型的
double getDay = t3.TotalDays; 

//将这个天数转换成小时, 返回值是double类型的  
double getHours = t3.TotalHours; 
Console.WriteLine(getHours);

//将这个天数转换成分钟, 返回值是double类型的
double getMinute = t3.TotalMinutes;   
Console.WriteLine(getMinute);

//将这个天数转换成秒数, 返回值是double类型的 
double getSeconds = t3.TotalSeconds;  
Console.WriteLine(getSeconds);

//将这个天数转换成毫秒, 返回值是double类型的 
double getMillisecond = t3.TotalMilliseconds;  
Console.WriteLine(getMillisecond);

C#求两个时间之间相差了多少天、多少小时、多少分钟


八、DataTable Class、DataSet Class

DataSet是数据集,DataTable是数据表,DataSet存储多个DataTable。DataSet和DataTable像是专门存储数据的一个容器,在你查询数据库得到一些结果时可以存在里面。
  DataSet功能强大有浏览、排序、搜索、过滤、处理分级数据、缓存更改等功能,还可以与XML数据互换。DataSet中可包括多个DataTable,可将多个查询结构存到一个DataSet中,ADO.NET开发人员为方便数据处理开发出来的。

DataTable与DataSet常用操作实例:

//DataTable和DataSet之间的关系
DataTable dt1 = ds.Tables[0];   
		  或者
DataTable dt = ds.Tables["表名"];

//获取DataTable中某一个值
取得DataTable中第(i-1)行列名为"xxx"的数据(先取某一行,再取某一列):
dt.Rows[i]["xxx"].ToString();

//创建DataSet
DataSet ds = new DataSet();

//创建DataTable及添加列
DataTable dt = new DataTable();
dt.Columns.Add("列名1:如id",Type.GetType("System.Int32"));
dt.Columns["id"].AutoIncrement = true;
dt.Columns.Add("列名2:如name",Type.GetType("System.String"));
......

//添加行
DataRow newRow; 
newRow = dt.NewRow(); 
newRow["列名1"] ="......"; 
newRow["列名2"] ="......"; 
......
tblDatas.Rows.Add(newRow); 

//将DataTable添加到DataSet中
ds.Tables.Add(dt);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值