刘铁猛C#语言入门详解——学习笔记014、15、16(2)

article/2025/9/27 3:29:38

using System;
using System.Collections.Generic;
namespace ConsoleApp2
{class Program{static void Main(string[] args){//c#语言对表达式的定义:a sequence of one or more operands and zero or more operators can be evaluated to a single value object method namespace//consist os literal value a method invocation an operator and its operands and simple name//single value/*int x;x = 199;//object using System.Windows.Forms;List<int> intList = new List<int>() { 1, 2, 3 };double[]doubleArray = new double[] { 1.0, 2.0, 3.0 };var y = intList[1];Console.WriteLine(x.GetType());*///选择语句嵌套/*            int score = 90;if (score >= 60)if (score >= 85)Console.WriteLine("best!");elseConsole.WriteLine("good");elseConsole.WriteLine("failed");*///  声明语句:/*    var y = 100;Console.WriteLine(y.GetType().FullName);int[] myArray = { 1, 2, 3 };Console.WriteLine(myArray[2]);const int x = 100;//常量声明必须跟初始化器*///语句分为:标签语句。声明语句,嵌入式语句//表达式语句//块语句 语句只能出现在方法体里,//  块语句是一条完整语句 ctrl +}快捷键在花括号之间跳转,作用域/*{hello: Console.WriteLine("hello world");goto hello;} *///选择语句bool 关系表达式是bool类型if 只有一条嵌入语句  代码提示,可以生成代码块//else语句 多用边界数据测试 else if/*     int score = 60;if(score >=80 &&score <=100){Console.WriteLine("A");}else if (score>=60){Console.WriteLine("B");}else if (score>=40){Console.WriteLine("C");}else if (score>=0){Console.WriteLine("D");}*//*   //switch语句 例子是:成绩判断Level myLevel = Level.High;//switch打出来先TAB,再条件里修改myLevel再回车switch (myLevel){case Level.High:break;case Level.Mid:break;case Level.Low:break;default:break;} *//*  Calculator c = new Calculator();int r = c.Add("100","200");Console.WriteLine(r);*///do语句至少执行一次, while语句可能一次都不执行,如果while判断是false类型/* int score = 0;bool canContinue = true;do{Console.WriteLine("please input first number");string str1 = Console.ReadLine();int x = 0;try{x = int.Parse(str1);}catch {Console.WriteLine("First number has problem!restart");continue;}Console.WriteLine("please input second number");string str2 = Console.ReadLine();if (str2.ToLower()=="end"){break;}int y = 0;try{y = int.Parse(str2);}catch {Console.WriteLine("second number has problem,restart");continue;}int sum = x + y;if (sum == 100){score++;Console.WriteLine("Correct!{0}+{1} = {2} ", x, y, sum);}else{Console.WriteLine("Error!{0}+{1} = {2}", x, y, sum);canContinue = false;}} while (canContinue);Console.WriteLine("your score is {0}", score);Console.WriteLine("game over!");  *///for语句计数循环 tab修改/*for ( int counter = 0; counter < 10; counter++){Console.WriteLine("hello world");}//打印9*9乘法表for (int a = 1; a <=9; a++){for (int b = 0; b <=9; b++){Console.WriteLine("*");}}*/Calculator c = new Calculator();int result = c.Add("ABD", "12");Console.WriteLine(result);}/*     enum Level{High,Mid,Low}*///try-catch 对异常值的处理class Calculator{public int Add(string arg1, string arg2){int a = 0;int b = 0;try{a = int.Parse(arg1);b = int.Parse(arg2);}//通用捕捉异常的语句catch(ArgumentNullException ane){Console.WriteLine(ane.Message);Console.WriteLine("your argument are null");}//捕捉特定异常的catch语句catch(FormatException fe){Console.WriteLine(fe.Message);Console.WriteLine("FORMAT WRONG");}catch(OverflowException oe){Console.WriteLine(oe.Message);Console.WriteLine("out of range!");}//释放系统资源 关闭数据库 程序的LOGfinally {}//变量作用阈不会超过声明她的语句块int result = a + b;return result;}}}}


http://chatgpt.dhexx.cn/article/Qik3oPW0.shtml

相关文章

《深入浅出WPF》-刘铁猛学习笔记——XAML

这里有个目录 XAML是什么&#xff1f;导人程序集和引用其中的名称空间XAML的树型结构Attribute (特性、标记、属性)Property (属性)属性赋值字符串赋值使用属性元素( Property Element)进行复杂赋值 XAML 注释后记 XAML是什么&#xff1f; XAML是微软公司创造的一种开发语言&a…

《C#入门详解》刘铁猛——Lesson31泛型、partial类、枚举、结构体

泛型类如下&#xff1a; 泛型接口&#xff0c;太常用了&#xff0c;如下&#xff1a; 实现这个泛型接口的类&#xff0c;也是泛型类&#xff0c;如下&#xff1a; 数据结构&#xff0c;基本上都是泛型的。 方法也可以是泛型的&#xff0c;而且泛型方法更常用&#xff0c;泛型方…

《C#入门详解》刘铁猛——Lesson10-11-12 操作符

纵向往下走&#xff0c;优先级依次降低。 []操作符声明数组&#xff1a; typeof操作符的用法&#xff1a; var声明隐式类型变量&#xff1a; new操作符声明实例&#xff1a; delegate——委托&#xff0c;使用该操作符声明一个匿名方法的示例如下&#xff1a; delegate现在已过…

《C#入门详解》刘铁猛——Lesson22-23LINQ

事件是基于委托的&#xff0c;事件是对委托类型的包装&#xff0c;事件是语法糖&#xff0c;委托类型才是完整格式&#xff0c;保护委托类型不会被外部随便调用。 就像属性是基于字段的&#xff0c;属性是字段的包装&#xff0c;用于防止字段被外部乱用。 三年后的视频。。。 …

刘铁猛《C#语言入门详解》——委托详解

委托详解 事件 using System; using System.Threading;namespace ConsoleAPP1 {class Program{static void Main(string[] args){Customer customer = new Customer(); //s事件拥有者Waiter waiter = new Waiter(); //事件的响应者// += 事件的订阅 customer.Order 事件 …

C#语言入门详解---委托(刘铁猛)

委托:函数指针的升级版,可以类比C语言中的函数指针进行理解 变量的本质就是以变量名所对应的内存地址为起点的一段内存,这段内存中存储的就是变量的数据,这段内存的大小由变量的数据类型决定。 函数代表算法,函数的本质是以函数名所对应的内存地址为起点的一段内存中,这…

刘铁猛《C#语言入门详解》1——详解类型、变量与对象

详解类型、变量与对象——上 C#是强类型语言&#xff0c;可使用dynamic实现弱类型语言的赋值操作&#xff1a; 数据类型 栈溢出&#xff1a;栈很小&#xff0c;分配过多内存会爆掉 内存监视器&#xff1a;winR,命令为&#xff1a;perform 详解类型、变量与对象——下 值类型在…

【C#】刘铁猛-C#语言入门详解听课笔记

叨叨在前&#xff1a; 这个视频共33集&#xff0c;油管和B站都可以看&#xff0c;B站有说有第二版本&#xff0c;但我在油管刘老师主页上没看见。 01 C#语言简介&#xff0c;搭建开发环境【略】 1、C#主要用来编写应用程序的 2、写程序步骤&#xff1a;编辑→编译[把语言转成…

【C#进阶学习】——刘铁猛老师

一、 C#语言入门详解&#xff1a;类、对象、类成员简介 1.1实例化对象 1.2引用变量&#xff08;可以对同一个对象进行操作和访问&#xff09; 1.3类 以属性为侧重点的类 以方法为侧重点的类 以事件为侧重点的类 1.4.静态成员与实例化成员 静态成员&#xff1a;立属于类…

AQS中公平锁和非公平锁的区别

场景&#xff1a;一个线程运行完毕&#xff0c;准备去等待队列中唤醒&#xff08;unpark&#xff09;线程。 公平锁&#xff1a; 当hasQueuedPredecessors 返回false时&#xff0c;则表示不需要去排队&#xff0c;会直接进行cas操作去修改state状态 hasQueuedPredecessors解析 …

AQS中的公平锁和非公平锁

正文 公平锁&#xff1a;多个线程按照申请锁的顺序去获得锁&#xff0c;线程会直接进入队列去排队&#xff0c;永远都是队列的第一位才能得到锁。 优点&#xff1a;所有的线程都能得到资源&#xff0c;不会饿死在队列中。 缺点&#xff1a;吞吐量会下降很多&#xff0c;队列里…

公平锁和非公平锁介绍

公平锁&#xff1a; 解释&#xff1a;多个线程按照申请锁的顺序执行&#xff0c;先来后到。 优点&#xff1a;所有的线程都能得到资源&#xff0c;不会饿死在队列中。 缺点&#xff1a;吞吐量会下降很多&#xff0c;队列里面除了第一个线程&#xff0c;其他的线程都会阻塞&a…

公平锁和非公平锁的详解

公平锁 加锁时考虑排队等待问题&#xff0c;按照申请锁的顺序&#xff0c;按照FIFO规则&#xff0c;先申请的线程先取得锁&#xff0c;其他线程进入队列等待锁的释放&#xff0c;当锁释放后&#xff0c;在队头的线程被唤醒。 非公平锁 加锁时不考虑排队等待问题&#xff0c;直接…

可重入锁的理解及公平锁和非公平锁的具体实现

可重入锁 首先结合以下两个例子理解以下可重入锁的概念。 /*** 可重入锁:* 1、可重复可递归调用的锁&#xff0c;在外层使用锁之后&#xff0c;在内层仍然可以使用&#xff0c;并且不发生死锁&#xff0c;这样的锁就叫做可重入锁。* 2、是指在同一个线程在外层方法获取锁的时…

公平锁与非公平锁的核心原理

前言&#xff1a;大家好&#xff0c;我是小威&#xff0c;24届毕业生&#xff0c;在一家满意的公司实习。本篇文章是关于并发编程中AQS的独占模式和共享模式。 本篇文章记录的基础知识&#xff0c;适合在学Java的小白&#xff0c;也适合复习中&#xff0c;面试中的大佬&#x1…

公平锁和非公平锁介绍,为什么要“非公平”?

什么是公平和非公平 公平锁指的是按照线程请求的顺序&#xff0c;来分配锁&#xff1b;而非公平锁指的是不完全按照请求的顺序&#xff0c;在一定情况下&#xff0c;可以允许插队。但需要注意这里的非公平并不是指完全的随机&#xff0c;不是说线程可以任意插队&#xff0c;而…

图解ReentrantLock公平锁和非公平锁实现

概述 ReentrantLock是Java并发中十分常用的一个类&#xff0c;具备类似synchronized锁的作用。但是相比synchronized, 它具备更强的能力&#xff0c;同时支持公平锁和非公平锁。 公平锁&#xff1a; 指多个线程按照申请锁的顺序来获取锁&#xff0c;线程直接进入队列中排队&a…

Java面试突击:公平锁和非公平锁有什么区别?

从公平的角度来说&#xff0c;Java 中的锁总共可分为两类&#xff1a;公平锁和非公平锁。但公平锁和非公平锁有哪些区别?孰优孰劣呢?在 Java 中的应用场景又有哪些呢?接下来我们一起来看。 正文公平锁&#xff1a;每个线程获取锁的顺序是按照线程访问锁的先后顺序获取的&am…

浅谈ReentrantLock的公平锁和非公平锁的区别

前言 最近在看java并发编程这本书&#xff0c;已经看了点ReentrantLock的源码&#xff0c;以及之前有面试官问&#xff0c;公平锁和非公平锁有啥区别&#xff0c;我就只是从源码层面说了一下区别&#xff0c;但在性能上也有区别&#xff0c;今天就来说道说道。 公平与非公平 …

aqs原理初探以及公平锁和非公平锁实现

深入理解AQS 一&#xff0c;AQS1&#xff0c;ReentrantLock2&#xff0c;CAS3&#xff0c;AbstractQueuedSynchronizer3.1&#xff0c;FairSync3.2&#xff0c;NofairSync3.3&#xff0c;AQS中几个重要的相关参数3.4&#xff0c;Node 一&#xff0c;AQS AbstractQueuedSynchro…