当前位置: 首页 > news >正文

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(' ','_'));

只读自动属性

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

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

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();
}

相关文章:

  • Server-Sent Events(SSE)协议详解
  • 千峰React:组件使用(1)
  • 基于Spring Boot的售楼管理系统设计与实现(LW+源码+讲解)
  • Spring Cloud中如何使用Eureka:超详细指南
  • 产业园区数字孪生规划方案(40页PPT)
  • 嵌入式学习(18)---Linux文件编程中的进程
  • 代码随想录算法训练营第六天| 242.有效的字母异位词 、349. 两个数组的交集、202. 快乐数 、1. 两数之和
  • 《Kettle保姆级教学-性能调优,抽取速率提升800%》
  • java网络编程02 - HTTP、HTTPS详解
  • 若依-@Excel新增注解numberFormat
  • 【SFRA】笔记
  • 【可实战】Linux 常用统计命令:排序sort、去重uniq、统计wc
  • idea连接gitee完整教程
  • 精通特征选择:过滤器方法提升机器学习模型的技巧
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • docker中pull hello-world的时候出现报错
  • javaSE学习笔记20-线程(thread)的状态以及控制
  • Day6 25/2/19 WED
  • Win10下安装 Redis
  • ssh免密登录配置
  • 最新研究:基因编辑治疗晚期胃肠道癌显成效
  • 文旅部:加强对景区索道、游船等设施设备安全隐患排查整治
  • 《中国医药指南》就涉宫颈癌等论文出现男性病例致歉:辞退涉事编辑
  • 柳向春:关于美国国会图书馆所藏《全芳备祖》的一些故事
  • 恒瑞医药通过港交所上市聆讯,最快或5月挂牌上市
  • 南京明孝陵石兽遭涂鸦“到此一游”,景区:已恢复原貌,警方在排查