
初识 C#/.net 基础【01】
发布日期:2021-05-04 14:31:07
浏览次数:23
分类:技术文章
本文共 5286 字,大约阅读时间需要 17 分钟。
学习时间:2020年9月17日
- 关于数据类型网上很多资料可以查看
- public:共有的,所有的类都可以访问
- private:私有的 当前类内部可以访问
- protected:受保护的 当前类以及继承它的子类可以访问
- internal:内部的 只限于本项目内访问其他的不能访问
- protected internal:内部保护访问 只能是本项目内部或者子类访问 其他类不能访问
- 访问级别约束
- 父类子类访问修饰符要保持一致
- 方法的访问修饰符要和方法参数的访问修饰符 保持一致
- 注意:类的访问级别默认为 隐式私有 需要加上 public 才可以让外部访问
快捷键 :
- 注释:Ctrl + K + C
- 取消注释:Ctrl + K + U
- 整理代码:Ctrl + K + D/F
- 代码提示:Ctrl + J
- 方法参数提示:Ctrl + shift + 空格
- 插入代码块:Tab(按两次)【例如:出入 for 然后按两次 Tab for循环的代码块就会生成】
- 删除当前行:Ctrl + shift + L
- Ctrl + M + M: 隐藏或展开当前嵌套的折叠状态(M是两次哦)
- 焦点行矩形框:Alt + 鼠标左键
- 关于类、属性、方法
- 可以查看 ClassYin01 类,里面有记相关录属性和方法
class ClassYin01 { /* 属性遵循大驼峰命名法 * 如果属性中具有 get 关键字,说明可以获取该属性的值 * 如果属性中具有 set 关键字,说明可以向该属性设置值 * * 类使用关键字 new 实例化对象 * 一个类可以实例化多个对象 * 对象可以使用类定义的属性和方法 * * 静态的属性和方法通过 static 关键字修饰 * 静态的属性可以通过类型直接获取,非静态则必须通过实例化的对象获取 * * 静态方法中只能使用静态字段 * * 调用静态属性和方法,需要使用类来点属性或方法【ClassYin01.IdCard】 * * 静态类通过 static 关键字修饰 * 一般情况下类型不需要静态修饰,只有当类型中存在扩展方法时需要使用静态类 */ // 下面三个属性:Name、Age、Height public string Name { get; set; } public int Age { get; set; } public int Height { get; set; } // 下面一个静态属性:IdCard public static string IdCard { get; set;} // 下面两个方法:Eat、Run ////// 人在吃的方法 /// public void Eat() { MessageBox.Show(Name + "在吃"); } ////// 人在跑的方法 /// public void Run() { MessageBox.Show(Name + "在跑"); } // 下面静态方法:RedID ////// 静态方法读取身份证号 /// public static void RedID() { MessageBox.Show("身份证号为:" + IdCard); } }
- ClassYin01类中属性赋值及调用其方法:
// 类的实例化 ClassYin01 XiaoYin01 = new ClassYin01(); XiaoYin01.Name = "小印01"; XiaoYin01.Age = 22; XiaoYin01.Height = 173; ClassYin01.IdCard = "421083199800000000"; XiaoYin01.Eat(); XiaoYin01.Run(); ClassYin01.RedID(); ClassYin01 XiaoYin02 = new ClassYin01() { Name = "小印02", Age = 23, Height = 175 }; ClassYin01.IdCard = "421083199800000000"; XiaoYin02.Eat(); XiaoYin02.Run(); ClassYin01.RedID();
//整数类型(int)转字符串类型(String)
int i = 0; String st = i.ToString();
// 弹窗提示【类似 Delphi 中的 ShowMessage()】
MessageBox.Show(st);
// 显示 Form1 窗体
Form1 yf1 = new Form1(); yf1.ShowDialog();
- switch 与 if 语句的区别 【比方 i 是一个需要找包房的人,满足的条件是相对应的包房】
- if 就相当于去饭店问服务员,某某包房有没有,有就进去吃饭,没有 else
- switch 就相当于去饭店吃饭,服务员您有预约包房没有,没有只能在大厅(default)
switch 语句:
switch (i) { case 1: MessageBox.Show("这是1号房!"); break; case 2: MessageBox.Show("这是2号房!"); break; case 3: MessageBox.Show("这是3号房!"); break; default: MessageBox.Show("没有包房了,只能在大厅吃饭"); break; }
数组:
// 声明没有元素的数组【5是数组长度,声明长度后不可改变】 int[] ints1 = new int[5]; // 声明初始化有元素的数组 int[] ints2 = new int[] { 1, 2, 3, 4 }; // 在声明初始化有元素的数组时,也可以指定数组大小 string[] strs1 = new string[5] { "ab", "bc", "c", "cd", "de" }; // 使用 for 循环给没有元素的数组赋值 for (int ii = 0; ii < ints1.Length; ii++) { ints1[ii] = ii; }
/* (int)5.21 表示使用显示强制转换 C# 整形是 int32,因此使用此方法转成 int32位,不遵循四舍五入,只截取整数部分 * int.Parse(""); 只支持将 string 类型转成 int,Parse 就是把 String 类型转换成 int,char,double...等, * 也就是 类型.Parse(string) 括号里面一定是string类型的 * * Convert.ToInt32(4.5); 不完全遵循四舍五入,如果括号里面的需要四舍五入的数字是中间数(5),那么就返回二者中间的偶数 */ Convert.ToInt32(4.5);// 输出为4 Convert.ToInt32(4.6);// 输出为5 Convert.ToInt32(5.4);// 输出为5 Convert.ToInt32(5.5);// 输出为6
方法:【直接调用写在 Form 里面的方法】
// 调用下面的 NumAdd 方法 MessageBox.Show(NumAdd(10, 5)); /* 调用下面带 out 的方法 * 其中传递的是参数的地址,当方法中修改后,传进去的原参数因为和里面已经修改的参数地址相同,所以原参数也会同时跟着修改 * 如果被调用的方法没有给输出参数赋值,就会出现变异错误。 * out 可以调用一次方法获得多个返回值【C#7.0 要实现调用一次方法返回多个参数,建议使用元组】 * out 传进去的值,在方法里面的【必须】给传进去的重新赋值 */ string stxt = "我是默认的赋值";// 提示不需要对 stxt 赋值 MessageBox.Show(Text1(out stxt)); // 所谓的返回多个参数就是利用 out 传进去的是参数地址,传进去进行修改地址里面的内容,进而实现多参数修改,这就是上面所说的返回多参数 MessageBox.Show(Text2(stxt, out string stxt2));// 输出:我是在里面被改变了 MessageBox.Show(stxt2);// 输出:我是在里面被改变了的stxt2 /* 调用下面带 ref 的方法 * 其跟 out 一样都是引用传递,但是 ref 传进去的的参数必须先赋值,在方法里面可以给传进去的参数赋值,也可以不给它赋值 */ string stxt3 = "ref 传过去的参数必须先赋值"; MessageBox.Show(Text3(stxt, ref stxt3));// 输出:我是在里面被改变了
- 写在Form中的方法
/* 这些三条斜杠的是为函数写注释 */ ////// 两个数加法加法方法 /// /// 数字1 /// 数字2 ///返回两个数的和 public string NumAdd(int snum1, int snum2) { int ssum; ssum = snum1 + snum2; return "和为:" + ssum; } ////// out单个返回值【传进来的是参数地址进行修改里面的内容】 /// /// 传进来的参数 ///返回的是方法里面的stxt public string Text1(out string stxt) { stxt = "我是在里面被改变了"; return stxt; } ////// 所谓的多参数返回 就是传进来多个参数地址,最终返回其中一个,但是传进来的参数地址里面的内容都被修改了,所以在调用的时候直接可以得到被修改后的的参数 /// /// 传进来的stxt参数,返回的也是这个参数的修改值 /// 传进来stxt2参数地址 ///返回的是方法里面的stxt,但是传进来的stxt2地址里面的内容也被修改了 public string Text2(string stxt, out string stxt2) { stxt = "我是在里面被改变了"; stxt2 = "我是在里面被改变了的stxt2"; return stxt; } ////// 带有 ref 的方法,在方法里面不修改参数的情况 /// /// 传进来的stxt参数 /// 传进来的stxt3参数地址 ///返回的是方法里面的stxt public string Text3(string stxt, ref string stxt3) { stxt = "我是在里面被改变了"; return stxt; }
一点点笔记,以便以后翻阅。
发表评论
最新留言
不错!
[***.144.177.141]2025年03月21日 03时55分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
电容入门知识
2019-03-05
2019CCPC女生专场赛_K - Tetris_打表/模拟_暴力之王
2019-03-05
“/”应用程序中的服务器错误。
2019-03-05
MUI之ajax获取后台接口数据
2019-03-05
使用sqlserver 查询不连续的数据
2019-03-05
用div+css+html+js 实现图片放大
2019-03-05
(原创)在Linux上安装运行Python3(CentOS7为例)
2019-03-05
变量覆盖漏洞
2019-03-05
weblogic之cve-2015-4852
2019-03-05
Java注释
2019-03-05
水调歌头·1024
2019-03-05
对不起
2019-03-05
C++ 函数重载
2019-03-05
Nginx简介
2019-03-05
Nginx的Gzip功能
2019-03-05
Azure Storage 系列(四)在.Net 上使用Table Storage
2019-03-05
[模板] 带修莫队
2019-03-05
abstract关键字的使用
2019-03-05
算法题:获取一个字符串在另一个字符串中出现的次数
2019-03-05