int.TryParse
int.TryParse(string s,out int i) 【 s:要转换的字符串,i :转换的结果】
转换成功true
转换失败false
输入
int i=0;
int.TryParse(null,out i)
---false
int.TryParse(“”,out i)
---false
int.TryParse(“1 “,out i)
---true
int.TryParse(“1 2”,out i)
---false
非数字型字符串
---false
int.TryParse(System.DBNull,out i)
“System.DBNull”是一个“类型”,这在给定的上下文中无效
int.TryParse(System.DBNull.Value,out i)
与“int.TryParse(string, out int)”最匹配的重载方法具有一些无效参数
int.TryParse(System.DBNull.Value.ToString(),out i)
false可以发现,System.DBNull.Value可以直接进行ToString()的。
int number = 100;
bool b = int.TryParse("123abc", out number);
Console.WriteLine(b); //输出false
Console.WriteLine(number); //输出0
Console.ReadKey();
1
/*
1、输入数字,打印该数字的2倍,不断重复。
2、加入结束功能,如果输入”end”则程序结束。
3、在上一题基础上,如果输入的不是数字,那么提示重新输入。
*/
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
while (true)
{
Console.Write("输入:");
string input_str = Console.ReadLine();
if (input_str.StartsWith("end"))
{
Console.WriteLine("结束");
break;
}
int v = 0;
if (int.TryParse(input_str, out v))
{
Console.WriteLine(v * 2);
}
else
{
Console.WriteLine("请重新输入");
}
}
}
}
}
Random random = new Random();
int r = random.Next(0, 100);
foreach
foreach(数据类型 变量名 in 数组名)
{
//语句块;
}
/*
用函数改写之前的猜数字游戏,尽可能把功能拆分出来。
1、拆分出输入数字的函数。
2、拆分出生成随机数的函数。
*/
using System;
namespace ConsoleApp1
{
class Program
{
//拆分出输入数字的函数。
static int Input()
{
int s = 0;
while (true)
{
if (int.TryParse(Console.ReadLine(), out s))
{
return s;
}
else
{
Console.WriteLine("请重新输入");
}
}
}
//拆分出生成随机数的函数。
static int Random(int ln,int rn)
{
Random random = new Random();
int num = random.Next(ln, rn);
return num;
}
static void Main(string[] args)
{
int n = 0;
int num = Random(1, 100);
int cai = 0;
while (num != cai)
{
cai = Input();
if (cai < num)
{
Console.WriteLine("偏小");
}
if (cai > num)
{
Console.WriteLine("偏大");
}
n += 1;
}
if (num == cai)
{
Console.WriteLine("您猜对了,一共猜了" + n + "次");
}
}
}
}
/*
三角形
*/
using System;
namespace ConsoleApp1
{
class Program
{
static void RTri()
{
for(int i = 1; i < 6; i++)
{
for (int j = 0; j < i; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
}
static void EQTri()
{
for(int i = 1; i < 4; i++)
{
for(int j = 0; j < i; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
for(int i = 4; i < 6; i++)
{
for(int j = 0; j < 6 - i; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
}
static void RTri_2()
{
for(int i = 1; i < 5; i++)
{
for(int j = 1; j < 5 - i; j++)
{
Console.Write(" ");
}
for (int j = 0; j < i; j++)
{
Console.Write("*");
}
Console.Write("\n");
}
}
static void EQTri_2()
{
for(int i = 1; i < 5; i++)
{
for (int j = 1; j < 5 - i; j++)
{
Console.Write(" ");
}
for (int j = 0; j < (2 * i - 1); j++)
{
Console.Write("*");
}
Console.Write("\n");
}
}
static void Main(string[] args)
{
RTri();
EQTri();
RTri_2();
EQTri_2();
}
}
}
C# 泛型 加减乘除
using System;
namespace ConsoleApp1
{
class Program
{
static T Sum<T>(T num1, T num2) where T : struct
{
dynamic v1 = num1;
dynamic v2 = num2;
return v1 + v2;
}
static T Sub<T>(T num1, T num2) where T : struct
{
dynamic v1 = num1;
dynamic v2 = num2;
return v1 - v2;
}
static T Mul<T>(T num1, T num2) where T : struct
{
dynamic v1 = num1;
dynamic v2 = num2;
return v1 * v2;
}
static T Div<T>(T num1, T num2) where T : struct
{
dynamic v1 = num1;
dynamic v2 = num2;
return v1 / v2;
}
static void Main(string[] args)
{
float a = 3;
float b = 6;
Console.WriteLine(Sum(a, b));
Console.WriteLine(Sub(a, b));
Console.WriteLine(Mul(a, b));
Console.WriteLine(Div(a, b));
}
}
}
static_cast
char a = 'a';
int b = static_cast<char>(a);//正确,将char型数据转换成int型数据
double *c = new double;
void *d = static_cast<void*>(c);//正确,将double指针转换成void指针
int e = 10;
const int f = static_cast<const int>(e);//正确,将int型数据转换成const int型数据
const int g = 20;
int *h = static_cast<int*>(&g);//编译错误,static_cast不能转换掉g的const属性
C#动态数组
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ArrayListTest
{
class Program
{
static void Main(string[] args)
{
ArrayList al = new ArrayList();
//单个添加
al.Add(100);
//集体添加方发一
foreach (int number in new int[6]{6, 3, 4, 1, 0 ,9})
{
al.Add(number);
}
//集体添加方法二
int[] number2 = new int[2] {15, 21};
al.AddRange(number2);
//移除值为3的数
al.Remove(3);
//移除第3个数
al.RemoveAt(3);
ArrayList al2 = new ArrayList(al.GetRange(1, 3));
Console.WriteLine("遍历方法一");
foreach (int i in al)
{
//遍历方法一
Console.WriteLine(i);
}
Console.WriteLine("遍历方法二");
for (int i = 0; i <al2.Count; i++)
{
//一定要强制转换
int number = (int)al2[i];
Console.WriteLine(number);
}
Console.ReadLine();
}
}
}
C# 动态数组
ArrayList写法
/*再写最后一个函数,函数的作用是将数组中的所有元素翻倍(即乘以2),确保改变了原数组中的值。
函数名称为DoubleElement,参数为int[] array。*/
using System;
using System.Collections;
namespace ConsoleApp1
{
class Program
{
static void DoubleElement(ArrayList array)
{
for(int i = 0; i < array.Count; i++)
{
array[i] =(int)array[i]*2;
}
}
static int Main()
{
Console.WriteLine("请输入一组数据,以end结尾");
ArrayList al = new ArrayList();
while (true)
{
string line = Console.ReadLine();
if (line == "end")
{
break;
}
al.Add(int.Parse(line));
}
DoubleElement(al);
Console.WriteLine("输出结果");
for (int i = 0; i < al.Count; i++)
{
Console.WriteLine(al[i]);
}
return 0;
}
}
}
List写法
using System;
using System.Collections.Generic;
namespace ConsoleApp1
{
class Program
{
static void DoubleElement(List<int> array)
{
for(int i = 0; i < array.Count; i++)
{
array[i] *= 2;
}
}
static int Main()
{
Console.WriteLine("请输入一组数据,以end结尾");
List<int> al = new List<int>();
while (true)
{
string line = Console.ReadLine();
if (line == "end")
{
break;
}
al.Add(int.Parse(line));
}
DoubleElement(al);
Console.WriteLine("输出结果");
for (int i = 0; i < al.Count; i++)
{
Console.WriteLine(al[i]);
}
return 0;
}
}
}
Array 类 (静态类) 是C#中所有数组的基类,在System命名空间下。
int[] nums = new int[] {1,2,3 };
nums.SetValue(1,10);
nums.GetValue(1);
Array.Sort();
Array.Reverse();
Array.Copy();
ArrayList 动态数组
命名空间 : namespace System.Collections
ArrayList 常用属性:
Count ---数组个数
ArrayList 常用方法:
添加:Add(),Insert(),InsertRange()
删除:Remove(),RemoveAt(),RemoveRange(), Clear()
排序: Sort() ,Reverse()
复制: Copy()
//动态数组
ArrayList arrayList = new ArrayList();
arrayList.Add(1);
arrayList.Add("张三");
List<T> 泛型集合 ,(主流,使用更灵活,尤其搭载Linq)
List 常用属性
Count---列表个数
List 常用方法
添加:Add(),AddRange()
删除:Remove(),RemoveAt(),RemoveRange(), Clear()
排序: Sort() ,Reverse()
复制: Copy()
跟数组转换:ToArray()