前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C#-筆記-基礎

C#-筆記-基礎

作者头像
用户9857551
发布于 2022-06-28 00:32:44
发布于 2022-06-28 00:32:44
49300
代码可运行
举报
文章被收录于专栏:Angular学习规划Angular学习规划
运行总次数:0
代码可运行

文章目录

快捷鍵及基礎知識

注釋: //單行注釋 /多行注釋/ ///代碼段注釋

/r/n win系統輸出的回車 Ctrl+k+d 快速對齊 Ctrl+k+c 快速注釋 Ctrl+k+u 快速取消注釋

@作用1.取消\在字符串裡的鑽義作用 2.把字符串按照原格式輸出 例子: Console.WriteLine(@“This is the first line. This is the second line.”);

命名規則:

Camel:變量名—小駝峰 Pascal:類名—大駝峰

前提:類型兼容 小轉大:自動轉 大鑽小:強制轉,語法:(待轉換的類型)要轉換的值 如果兩個類型不兼容:可以使用convert轉換工廠進行轉換

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String s = "123456";
Double d = Convert.ToDouble(s);//強制轉換變成double類型去進行運算
Double a = 12;
Double k = a + d;
Console.WriteLine("d={0},k={1}",d,a);//佔位符站好位置再寫
Console.ReadKey();

代码是如何工作的?

Console.WriteLine(“Hello World!”);

Console 部分称为“类”。 WriteLine() 部分称为“方法”。 • Console、Write 和 Line 首字母大写 • 使用正确的标点,因为它们在 C# 中扮演特殊角色 在 .NET 编辑器中编写代码,以显示两条消息 Console.WriteLine(@“This is the first line. This is the second line.”);

接受控制台字符轉換計算 //接受用戶的成績並輸出來

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    Console.WriteLine("請輸入你的姓名");
    String name = Console.ReadLine();//接受用戶的字段
    Console.WriteLine("語文成績");
    String strChinese = Console.ReadLine();
    Console.WriteLine("數學成績");
    String strMath = Console.ReadLine();
    Double  Chinese = Convert.ToDouble(strChinese);
    Double Math = Convert.ToDouble(strMath);
    Console.WriteLine("姓名是{0}總成績是{1}平均成績是{2:0.00}", name, Chinese + Math, (Chinese + Math)/2); //這裡邊佔位符裡的2:0.00是取兩位小數的意思  

+±-運算符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Int a , b = 2 ,c =3;
Int a = b++ * --c

//輸出4 b++裡邊是2參加運算 --c是2參加運算

Int a = ++b * c— //輸出9 ++b前加參加運算的是3 c—后減參加運算的是3 判斷符號 ||或 &&與,且

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/            //閏年判斷
            //可以被400整除
            //可以被4整除但是不能被100整除
            Console.WriteLine("請輸入年份");
            int year = Convert.ToInt32(Console.ReadLine());
            Boolean b = year % 400 == 0 || year % 4 == 0 && year % 100 == 0;
            Console.WriteLine(b);
            Console.ReadKey();

上圖中明顯是&&的優先級大於||所以說一下看不出來,可以加上()進行可以更加直觀。

異常捕捉:

語法正確,其他在運行時候的問題 使用try-catch來提高代碼的健壯性。下邊寫例子。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Console.WriteLine("請寫出一個數字");
            try
            {
                int b = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine(b);
                Console.ReadKey();
            }
            catch {
                Console.WriteLine("輸入的數據有問題");
                Console.ReadKey();
            }

Continue和break的區別

break 语句,它不仅可以跳出“循环体”,还可以跳出 switch。但事实上,break 也只能用于这两种情况。break 语句不能用于循环语句和 switch 语句之外的任何其他语句中。 continue 语句只结束本次循环,而不是终止整个循环。break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。而且,continue 只能在循环语句中使用,即只能在 for、while 和 do…while 中使用,除此之外 continue 不能在任何语句中使用。

循環

while 循环 当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。 for/foreach 循环 多次执行一个语句序列,简化管理循环变量的代码。 do…while 循环 除了它是在循环主体结尾测试条件外,其他与 while 语句类似。 嵌套循环 您可以在 while、for 或 do…while 循环内使用一个或多个循环。

程序調試

調試方法:

  1. F11逐句調試(單步調試)
  2. F10逐過程調試
  3. 斷點調試

三元表達式

語法:表達式1?表達式2:表達式3; 表達式1是一個關係表達式 如果表達式1的值是ture 那麼表達式2的值就是整個三元表達式的值 如果表達式1的值是false 那麼表達式3的值就是整個三元表達式的值 注意:表達式2的結果類型必須和表達式3的結果類型一致,並且也要和整個三元表達式的結果類型一致。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    //三元表達式
    Console.WriteLine("請輸入姓名");
    String name = Console.ReadLine();
    String result = name == "老趙" ? "人才" : "啥雕";
    Console.WriteLine(result);
    Console.ReadKey();

創建隨機數

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    //創建能產生隨機數的對象
    Random r = new Random();
    //讓產生隨機數的對象調用方法來產生隨機數
    for (int i = 0; i < 10; i++)
    {
        int rNumber = r.Next(1, 10);
        Console.WriteLine(rNumber);
    }
    Console.ReadKey();

常量,枚舉,結構

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
常量的聲明語法:
//const 變量類型 變量名 = 值;
            //const 變量類型 變量名 = 值;
            const int num = 12;
            num = 21;
Error	1	The left-hand side of an assignment must be a variable, property or indexer	
错误 1 任务的左侧必须是变量、属性或索引器	
常量不能被改變;

枚舉:枚舉,規範了我們的開發,規定了比如說性別,就不讓亂寫(男,man等等這些不同的詞匯) 語法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[public] enum 枚舉名{1,值2...}

一般寫在命名空間下邊,就讓所有的類都可以用。當然了還可以寫在類里,main方法外邊;枚舉默認可以與int類型互換,枚舉類型和int類型是兼容的,所有類型都可以轉換成string類型 例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
namespace test02
{
    public enum Gender
    {,}
    class Program
    {
        static void Main(string[] args)
        {
            
            Gender gerder = Gender.;
            Console.WriteLine(gerder);
            Console.ReadKey();下邊的括號就不寫了

結構:可以幫助我們一次性聲明多個不同類型的變量。同時可以與枚舉合用,比如與上邊的姓別的一塊連用;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[public] struct 結構名{成員變量}
與枚舉一樣放在命名空間裡
    public struct Person {
        public string _name;//一般在下邊放下劃線,以區別是字段不是變量
        public int _age;
        public char _gender;//加上public可以讓下邊方法來調用,不然權限不夠
    }

在方法裡調用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Person zsPerson;
            zsPerson.name = "張三";
            zsPerson.age = 32;
            zsPerson.gender = '男';
            Person lsPerson;
            lsPerson.name = "李四";
            lsPerson.age = 23;
            lsPerson.gender = '女';
            Console.WriteLine(zsPerson.name);
            Console.WriteLine(lsPerson.name);

數組 一次性存儲多個相同類型的變量; 語法:數組類型【】 數組名=new 數組類型【數組長度】; 數組的長度不能改變,要注意數組的界限 計算數組的最大值,最小值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    int[] num = { 1, 2, 3, 4, 5, 54, 7, 8, 9, 45 };
    int max = 0;
    int min = 21;
    for (int i = 0; i < num.Length;i++ )
    {
        if(max < num[i]){
            max = num[i];
        }
        if(min > num[i]){
            min = num[i];
        }
    }
    Console.WriteLine(max);
    Console.WriteLine(min);
    Console.ReadKey();//其實還是有缺陷的因為max,min不一定賦值的時候會出現問題所以給他一個初始值,這個初始值就是最小,int max = int.MinValue;在int範圍裡這個值最小。同理反之:int min = int.MinValue;  

方法

我們在main函數中,調用Test()函數(方法),我們管main()函數稱之為調用者,管Test函數是被調用者。

如果被調用用著者想要得到調用者的值: 1.傳遞參數; 2.使用靜態字段來模擬全局變量; 如果調用者想要獲得被調用者的值: 1.返回值

不管是實參還是形參都是在內存中開闢了空間。

方法的功能要單一 方法中比較忌諱出現用戶提示;一般盡量不出現這種情況。

OUT,ref,params

  • out參數,如果在一個方法中,返回多個相同類型的值的時候,可以考慮返回一個數組。但是如果返回多個不同類型的時候,返回數組就不可以了,用OUT。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
在mian方法裡
            Console.WriteLine("輸入賬號");
            string uname = Console.ReadLine();
            Console.WriteLine("輸入密碼");
            string pwd = Console.ReadLine();
            string msg;
            bool b = Test(uname, pwd, out msg);
            Console.WriteLine("登錄結果是{0}",b);
            Console.WriteLine("登錄信息{0}",msg);
                    /// <summary>
        /// 驗證賬號密碼
        /// </summary>
        /// <param name="uname">用戶名</param>
        /// <param name="pwd">密碼</param>
        /// <param name="hh">返回值out語法</param>
        /// <returns>返回值字符串</returns>
        public static bool Test(string uname,string pwd,out string hh) {
            
            if(uname == "admin" && pwd == "admin"){
                hh = "登錄成功";
                return true;
            }
            if (uname == "admin")
            {
                hh = "賬號錯誤";
                return false;
            }
            else {
                hh = "其他錯誤,請從新輸入賬號密碼";
                return false;
            }

        }

ref參數 能夠將一個變量帶入到一個方法中進行改變,改變完成後,再將改變後的值帶出方法,ref參數要求在方法外必須進行賦值,而方法內不能賦值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
			int n1 = 10;
            int n2 = 20;
            Test(ref n1,ref n2);
            Console.WriteLine("ni是{0}n2是{1}",n1,n2);
            #endregion
            Console.ReadKey();
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public static void Test(ref int n1,ref int n2) {
            int temp;
            temp = n1;
            n1 = n2;
            n2 = temp;
        }

params關鍵字 將實參列表中與可變參數數組類型一致的元素都當做數組的元素處理。params可變參數必須是形參列表中最後一個元素。

意思是將你提供的一係類數據當做一個數組計算。當然了這個數組是不可以變化的。 這是我自己說的不知道對不對。

方法的重載

定義:就是方法的名稱相同方法的參數不同。 1.如果參數個數相同那麼類型就不能相同。 2.如果類型相同參數的個數就不能相同。 方法的重載和返回值沒有關係。

递归

递归分为两种,直接递归和间接递归。 直接递归称为方法自身调用自己。 间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。 注意事项:

递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。 在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。 构造方法,禁止递归

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
centos7开机界面出现多个选项
第一个选项正常启动,第二个选项急救模式启动(系统出项问题不能正常启动时使用并修复系统)
全栈程序员站长
2022/06/29
1.6K0
centos7开机界面出现多个选项
linux服务器搭建之路3-升级内核
由于个人强迫症,什么软件都想用最新的,装完centos之后,第一件事就是升级内核。
锦小年
2019/05/26
1.4K0
实验:CentOS 7 编译安装最新版内核 Linux Kernel 6.5.2
注意:一定要执行 cd linux-6.5.2 命令,因为接下的操作默认都是这该目录下操作的。
ling218cn
2023/09/10
3.7K0
Centos内核升级的三种方法 转
在基于CentOS平台的工作过程中,难免有时需要升级或者降级内核以验证功能、调试性能或者更新整个系统。
双面人
2019/04/10
2.9K0
Centos内核升级的三种方法
                                                                            转
记一次centos 7内核升级事故 原
升级方法很简单,找到对应版本的内核rpm包,然后直接使用yum或rpm进行安装即可,该过程中可能需要处理一些包之间的依赖问题。
阿dai学长
2019/04/03
2.7K0
记一次centos 7内核升级事故
                                                                            原
CentOS7升级系统内核
为了让新安装的内核成为默认启动项,需要修改GRUB配置:打开并编辑/etc/default/grub,设置GRUB_DEFAULT =0。
孟斯特
2023/11/19
2.6K0
Centos7升级内核
1.首先去清华的TUNA或者中科大的USTC的elrepo下载适合自己的内核rpm包,我的是64位的,地址如下:
缘、妙不可言
2019/09/09
2.1K0
Centos和Ubutun系统内核升级操作
让我们安装了一个发行版,它包含了一个特定版本的内核。为了展示当前系统中已安装的版本,我们可以:
没有故事的陈师傅
2021/05/14
9280
CentOS7.x系统配置记录
建议使用阿里云的源其他发行版等同:http://mirrors.aliyun.com/help/centos
全栈工程师修炼指南
2020/10/26
2.2K0
CentOS7.x系统配置记录
CentOS7.x系统配置记录
建议使用阿里云的源其他发行版等同:http://mirrors.aliyun.com/help/centos
全栈工程师修炼指南
2022/09/28
1.2K0
CentOS7.x系统配置记录
centos7 删除无用内核
正常情况有两个启动项,一个是“正常启动”,另一个是“救援模式启动”(rescue)。 如果启动项多于2个,说明当前系统有旧内核未删除。原因是CentOS更新后不会自动删除旧内核。 默认以新内核启动,可以在启动选项中临时选择,也可以修改配置永久指定。
herve
2018/09/20
2.6K0
CentOS7升级内核
ELRepo 仓库是基于社区的用于企业级 Linux 仓库,提供对 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 发行版(CentOS、Scientific、Fedora 等)的支持。 ELRepo 聚焦于和硬件相关的软件包,包括文件系统驱动、显卡驱动、网络驱动、声卡驱动和摄像头驱动等。
晓果冻
2022/09/08
4910
CentOS 7 升级 Linux 内核
升级 CentOS 内核参考资料 1 升级 CentOS 内核参考资料 2 通过 /proc 虚拟文件系统读取或配置内核 Linux 内核官网 CentOS 官网
全栈程序员站长
2022/09/15
4.1K0
Centos系统升级内核
🎈 作者:互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护等领域。 🎈 博客首页:CSDN【互联网-小阿宇】 、阿里云【互联网-小阿宇】 🎈 欢迎小伙伴们点赞👍、留言💬 ⭐Centos系统升级内核 🎈查看现在的内核版本 🎈查看 yum 中可升级的内核版本 🎈导入ELRepo软件仓库的公共秘钥 🎈Centos系
互联网-小阿宇
2023/04/01
1.7K0
Centos系统升级内核
CentOS7 手动部署 BBR
BBR(Bottleneck Bandwidth and RTT),全新的 拥塞控制算法,由 Google 开发,供 Linux 内核的 TCP 协议栈使用
cnguu
2020/10/23
1.1K0
centos7 内核如何升级
需求:由于客户容器化的需要,需要将当前的操作系统升级为5.10.7的版本。 内核升级操作步骤如下: 步骤一:载入公钥、安装elrepo rpm -import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm 步骤二、载入elrepo-kernel元数据 yum --disablerepo=\* --enablerepo
Linux运维技术之路
2022/06/07
2.6K0
聊一聊CentOS 7升级内核方案
CentOS 7自带的内核版本还停留在3.x,如果某些软件对Linux内核版本有要求,就不得不升级内核来支持,比如Google的BBR加速,要求Linux内核大于4.9以上,这篇文章来聊一聊CentOS 7内核升级的话题。
星哥玩云
2022/08/13
2.6K0
聊一聊CentOS 7升级内核方案
干货,分享一次完整的CentOS升级内核脚本。
默认启动的顺序是从0开始,新内核是从头插入(目前位置在0,而4.4.4的是在1),所以需要选择0。
justmine
2019/03/11
1.3K0
CentOS 7/6系统升级内核版本到5.2.2
由于公司服务器新业务需要,需要将CentOS 7系统的内核(3.10.0-229)进行升级。
用户1679793
2019/07/25
7.3K0
升级CentOS 7.4内核版本的三种方案
在实验环境下,已安装了最新的CentOS 7.4操作系统,现在需要升级内核版本。
拓荒者
2019/06/28
3.2K0
升级CentOS 7.4内核版本的三种方案
相关推荐
centos7开机界面出现多个选项
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档