主页 > 开源代码  > 

C#```

C#```
TryParse  int x; bool b = int.TryParse("100", out x); Console.WriteLine(b); 格式转换 //浮点型转decimal,必须强转 double f = 0.1; decimal m = (decimal)f; //转float是ToSingle Convert.ToSingle(f); DateTime d = DateTime.Now; Console.WriteLine(d.ToString("yyyy-MMMM-dddd")); 空值

 可以判断三种情况,长度 text1.length == 0,会分配空间

==或equals默认只能比较“值类型”或“字符串”类型,不能比较对象类型 equals,不区分大小写 string属于引用类型,需要当值类型来使用

string text1 = ""; string text2 = string.Empty; 空对象

没有长度,不会分配空间

string text2 = null; 字符串拼接(StringBuilder)

StringBuilder sb = new StringBuilder("本周课程信息:"); string message = "语文"; sb.AppendFormat($"周一:{message}"); string str = sb.ToString(); Console.WriteLine(str);//本周课程信息:周一:语文 转义字符

在App.config文件中,不需要转义,读取字符串,\ 打断点的时候会自动变成 \\

字符串分割、连接、替换 string str = "AB EF HU 00"; string[] s = str.Split();//默认空格分割 str = string.Join("_", s); Console.WriteLine(str); Console.WriteLine(string.Join("+",s)); Console.WriteLine(str.Replace(' ','_')); 只读自动属性

自动属性:编译器自动生成 get 和 set 访问器及其背后的字段,不需要显式地写出这些代码

编译器为自动属性创建一个隐藏的私有字段,并且你无法直接访问该字段

public Classroom() { a = 20; } public int a{get;} = 10; 只读字段 private readonly int id = 10; public Classroom() { id = 20; } 构造器复用 public A(int a,int b) { this.a = a; this.b = b; } public A(int a,int b,int c):this(a,b) { this.c = c; } 对象(属性)初始化器

只能初始化属性,可以和构造器配合使用

Student s = new Student() { id = 1; name = "tom"; }; 泛型 List<T>

集合赋值,不能直接new_list = old_list,都是指向同一个地址

List<string> old_list = new List<string>(); List<string> new_list = new List<string>(old_list);

 集合、数组转换,ToList()、ToArray()   

list.AddRange(array);将数组直接添加到集合

list.RemoveAt(2);按照索引删除

Dictionary<K,V>

初始化,通过key获得对象,遍历key,遍历value

Dictionary<string, Student> s = new Dictionary<string, Student> { ["first"] = new Student("tom", 1), ["second"] = new Student("jack", 2) }; Console.WriteLine(s["first"]);//输出的是对象 Console.WriteLine(s["first"].name); foreach (string item in s.Keys) Console.Write(item + " "); Console.WriteLine(); foreach (Student item in s.Values) Console.Write(item.ToString() + " ");

事件

1、定义事件        2、处理事件        3、关联事件

单击一个按钮,就输出对应的一段话

可以在属性Tag存数据,从sender取出来

优化

会先把控件加到Controls集合中

要选择三个按钮,根据Tag判断,加上btn_

遍历Controls集合,可能其他控件的Tag为空,加判断

public Form1() { InitializeComponent(); //this.btn1.Click += new System.EventHandler(this.btn_Click); //this.btn2.Click += new System.EventHandler(this.btn_Click); //this.btn3.Click += new System.EventHandler(this.btn_Click); foreach(Control item in Controls) { if(item.Tag != null && item.Tag.ToString().Contains("btn_")) { item.Click += new System.EventHandler(this.btn_Click); } } } private void btn_Click(object sender, EventArgs e) { Button btn = (Button)sender; MessageBox.Show($"{btn.Text} {btn.Tag.ToString()}"); }

新增两个按钮,关联事件,移除事件

public partial class Form1 : Form { public Form1() { InitializeComponent(); Event(true); } public void Event(bool isAdd) { foreach (Control item in Controls) { if (item.Tag != null && item.Tag.ToString().Contains("btn_")) { if (isAdd) item.Click += new System.EventHandler(this.btn_Click); else item.Click -= new System.EventHandler(this.btn_Click); } } } private void btn4_Click(object sender, EventArgs e) { Event(true); } private void btn5_Click(object sender, EventArgs e) { Event(false); } private void btn_Click(object sender, EventArgs e) { Button btn = (Button)sender; MessageBox.Show($"{btn.Text} {btn.Tag.ToString()}"); } ShowDialog

ShowDialog关闭后有返回值

在旧窗体中点击按钮开启新窗体

private void button1_Click(object sender, EventArgs e) { Form2 f = new Form2(); DialogResult result = f.ShowDialog(); if(result == DialogResult.OK) { MessageBox.Show(f.Tag.ToString()); } }

在新窗体中点击按钮关闭新窗体

private void button1_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.OK; this.Tag = "123"; this.Close(); }
标签:

C#```由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“C#```