C# winform学习笔记

目录

 

一、C#基本语法

1、注释

2、变量

3、表达式

4、数组

5、函数

6、面向对象OOP

7、集合、字典


一、C#基本语法

C#是微软公司发布的一种面向对象的、运行于.NET Framework 和 .NET Core(完全开源、跨平台)之上的高级程序设计语言,由C和C++衍生出的面向对象的变成语言。

//引用命名空间 
using System;            
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

//项目的命名空间    
namespace WindowsFormsApp1     
{
    //类
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}

1、注释

单行注释://

多行注释:/*  */

文档注释:///

2、变量

3、表达式

x || y   或

 

4、数组

数组是一组想同类型的数据,数组中的数据需要通过数字索引来访问。

数组的声明:

  • 数组的声明需要使用new关键字
  • 在声明数组时,可以使用()来初始化数组中的元素。
  • 如果在数组声明之初没有使用大括号来初始化数组中的元素,则需要指定数组的大小。
  • 在声明初始化有元素的数组时,也可以指定数组大小。
//声明没有元素的数组
int[] arr = new int[6];
//声明初始化有元素的数组
int[] arr1 = new int[] { 1, 2, 3 };
//声明初始化有元素数组并指定数组大小
int[] arr2 = new int[3] { 1, 2, 3 };

通过索引获取数组中的元素:

  • 给数组指定长度时,数组准备存放多少元素,长度就设置为多少。
  • 用索引获取数组内的元素时,索引从0开始获取。
  • 所以数组中最大的索引数字,比指定数组长度小1.

5、函数

参数修饰符:

6、面向对象OOP

    class Class1
    {
        public int id { get; set; }
        public String name { get; set; }
        public void fun()
        {
            MessageBox.Show("id="+id+"; name="+name);

        }
    }



    //调用
    //Class1 cla = new Class1();
    Class1 cla = new Class1(){id = 123,name="张大"};
    //cla.id = 123;
    //cla.name = "张大";
    cla.fun();    

 

静态方法:

  • 静态和属性方法通过static关键字修饰
  • 静态和属性可以通过类型直接获取,非静态则必须通过实例化的对象获取。

静态类:

  • 静态类通过static关键字修饰
  • 一般情况下类型不需要使用静态修饰,只有当类型中存在扩展方法时需要使用静态类。

7、集合、字典

集合与数组相似,用于存放一组值。

数组的优缺点:

  • 优点:
    • 数组在内存中是连续存储的,所以它的索引速度很快,而且赋值与修改元素也很简单。
  • 缺点
    • 在数组的两个数据中间插入数据很麻烦
    • 在声明数组的时候,必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组的长度过短,会造成数据溢出的错误。

ArrayList 的使用:

  • ArrayList是.NET Framework提供的用于数据存储和检索的专用类
  • 它是命名空间System.Collections下的一部分。
  • 优点:
    • ArrayList的大小是按照其中存储的数据来动态扩充与收缩的
    • 在声明ArrayList对象时不需要指定它的长度。
    • ArrayList可以很方便的进行数据的添加、插入和移除。
  • 缺点:
    • ArrayList在存储数据时使用object类型进行存储的
    • ArrayList不是类型安全的,使用时很可能出现类型不匹配的错误
    • 就算都插入同一类型的数据,但在使用的时候,也需要将他们转化为对应的原类型来处理。
    • ArrayList的存储存在装箱和拆箱操作,导致其性能低下。
  • 泛型:限制只能存储单一类型数据的手段
ArrayList array = new ArrayList();
//将数据添加到结尾处
array.Add("abc");
//修改指定索引处的数据
array[0] = 123;
//移除指定索引处的数据
array.RemoveAt(0);
//移除内容为123的数据
array.Remove(123);
//在指定索引处插入数据
array.Insert(0,"插入数据");

List集合:

  • List集合与ArrayList由于都继承了相同的接口,故使用与ArrayList相似。
  • 在声明List集合时,需要同时为其声明List集合内数据的对象类型。
  • List<int>  li = new List<int>() 

class Person
    {
        public string name { get; set; }
        public int age { get; set; }
        public int height { get; set; }
    }

List<Person> list = new List<Person>();
Person person = new Person { name = "熊大", age = 20, height = 180 };
list.Add(person);
list.Add(new Person { name = "熊二", age = 18, height = 180 }) ;

Dictionary 字典:

            Dictionary<int, string> dic = new Dictionary<int, string>();
            dic.Add(1, "a");
            dic.Add(2, "b");
            //索引器赋值
            dic[1] = "c";
            //初始化赋值
            Dictionary<int, string> dic2 = new Dictionary<int, string> { 
                { 1, "a" },
                { 2, "b" },
                { 3, "c" }
            };
            string value = dic2[1];
            //删除键值为1的键值对
            dic2.Remove(1);

foreach的使用:

  • foreach操作数组

            int[] arrs = { 1, 2, 3, 4, 5, 6 };
            foreach(int arr in arrs)
            {
                int s = arr;
            }

  • foreach操作集合

            List<int> list = new List<int>() {1,2,3,4,5 };
            foreach (int l in list) {
                int a = l;
            }

  • foreach操作字典

            Dictionary<string,string> dict = new Dictionary<string, string>()
            {
                {"a","A" },
                {"b","B" },
                {"c","C" },
            };
            foreach(KeyValuePair<string,string> d in dict)
            {
                string key = d.Key;
                string value = d.Value;
            }

  • foreach操作对象集合

           class Person
           {
                  public string name { get; set; }
                  public int age { get; set; }
                  public int height { get; set; }
           }

 

            List<Person> personList = new List<Person>();
            personList.Add(new Person { name = "A", age = 1, height = 10 });
            personList.Add(new Person { name = "B", age = 2, height = 20 });
            personList.Add(new Person { name = "C", age = 3, height = 30 });

            foreach(Person p in personList)
            {
                string name = p.name;
                int age = p.age;
                int height = p.height;
            }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值