c#入门学习笔记

p35 @字符串

在字符串之前加上一个@,可以保持原生字符,不用再进行转义(除了双引号)。

例如:

@"A short list:
item 1
item 2"

或者:

@"C:\Temp\MyDir\MyFile.doc"

这相当于"C:\\Temp\\MyDir\\MyFile.doc"

p41 using static

可以使用using static System.Console来将静态成员直接包含到作用域中。

这样访问WriteLine()方法就不用再加上静态类名了。

p71 typeof 运算符

typeof运算符可以得到操作数的类型。
例如:

string myString = "north";
orientation myDirection = (orientation)Enum.Parse(typeof(orientation), myString);

p80 数组问号

int?[] myIntArray = new int?[7] {5, intValue, 9, 10, null, 2, 99};

注意紧跟在int声明之后的问号?。问号旨在让编译器直到这个int[]数组可以包含空对象,若没有这个问号,就会显示编译异常。

其次,要注意在初始化一个整数时,通常将其默认设置为0。

p80多维数组

二维数组格式:

int[,] intArray;

多维数组格式:

int[,,,] intArray;

初始化:

double[,] hillHeight = new double[3,4];

也可以用字面值进行初始赋值:

double[,] hillHeight = {{1,2,3,4}, {2,3,4,5}, {3,4,5,6}};

访问:

double[,] hillHeight = {{1,2,3,4}, {2,3,4,5}, {3,4,5,6}};
foreach (double height in hillHeight){Console.WriteLine($"{height}");
}
hillHeight[0,0]
hillHeight[0,1]
hillHeight[0,2]
...
hillHeight[1,2]

这种数组叫做矩形数组,因为每一行的元素个数都相同。

还有一种锯齿数组(jagged array),详情见p82。

p98 ref和out

ref关键字可用于返回类型和入参类型。
使用例子:

  1. 首选在函数形参处指定ref
    static void ShowDouble(ref int val)
    {val*=2;Conosole.WriteLine($"val doubled = {val}");
    }
    
  2. 在函数调用时需要再次指定(这是必需的)
    int myNumber = 5;
    Console.WriteLine($"myNumber = {myNumber}");
    ShowDouble(ref myNumber);
    Console.WriteLine($"myNumber = {myNumber}");
    

ref必须在外部初始化,C#不允许假定ref参数在使用它的函数中初始化。

也就是说下面的用法是非法的:

int muNumber;
ShowDouble(ref myNumber);
Console.WriteLine($"myNumber = {myNumber}");

除了ref外,还要out关键字。

使用out关键字时,必须把它看成尚未赋值。
调用函数时会丢弃out中存储的值。

例子:

static int MaxValue(int[] intArray, out int maxIndex)
{int maxVal = intArray[0];maxIndex = 0;for(int i=1, i<intArray.Length; ++i){if(intArray[i] > maxVal){maxVal = intArray[i];maxIndex = i;}}return maxVal;
}

使用该函数:

int[] myArray = {1,2,2,,1,332,22,12211};
Console.WriteLine("maximum value" + $"{MaxValue(myArray, out int maxIndex)}");
Console.WriteLine("The first occurrence of this value is " + $"at element {maxIndex + 1}");

p100 元组

示例:

var numbers = {1,2,3,4,5};

上面代码创建了一个名为numbers的元组,其中包含成员Item1、Item2、Item3、Item4和Item5。

可以以下面的方式来访问这些成员:

var number = numbers.Item1;

还可以给成员指定特定的名称来明确标识:

(int one, int two, int three, int four, int five)nums = {1,2,3,4,5};
int first = nums.one;

p135 双问号空值合并操作符

friend ?? throw new ArgumentNullException(paraName: nameof(friend), message: "null")

上面的带使用了双问号(??),称为空值合并操作符(null-coalescing operator),检查所赋的值是否为null,若为null,则抛出ArgumentNullException函数;否则将该值赋给变量。

双问号(??)是一个单元运算符,其左右两边数据类型必须是相同类型或能隐形转换类型的。意思是,首先检测左边的值,若为Null,那么整个表达式取值为右侧的值,否则为左侧的值。

例如:string s = null; Console.Write(s ?? "abc");。将打印出"abc"。
例如:string s = "a"; Console.Write(s ?? "abc");将打印出"a"。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/15662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网盘攻略,羊毛薅到底,这4招太狠了

仅供参考 先买原石会员账户&#xff0c;再绑手机。 自己手机千万不要去注册115&#xff0c;先去马云家买原石会员帐户(五十多自带33T永久空间&#xff0c;非常实惠)。买完原石帐户后再用手机登录绑定帐户和修改密码。买8T永久空间8年VIP 然后再花560元买8T永久空间8年vip&…

嵌入式全栈开发学习笔记---C语言笔试复习大全22

目录 结构体 结构体的声明 定义结构体变量 访问结构体成员进行初始化 通过结构体变量名访问结构体成员 结构体指针 结构体指针的定义 通过结构体指针访问结构体成员 结构体数组 结构体数组的定义 遍历结构体数组 结构体的长度&#xff08;笔试重点&#xff09; 上一…

深入理解C++多态-虚函数

引言 C多态的实现方式可以分为静态多态和动态多态&#xff0c;其中静态多态主要有函数重装和模板两种方式&#xff0c;动态多态就是虚函数。下面我们将通过解答以下几个问题的方式来深入理解虚函数的原理&#xff1a; 为什么要引入虚函数&#xff1f;&#xff08;用来解决什么…

2024年最新信息安全标准汇总

这些标准是我们在数字化时代保障网络安全、数据安全的重要基石&#xff0c;对于维护国家安全、企业利益和个人信息安全具有至关重要的作用。 随着科技的快速发展&#xff0c;网络空间的安全威胁也在不断演变&#xff0c;从复杂的网络攻击到个人信息泄露&#xff0c;这些安全风…

JAVA面试题大全(十四)

1、Kafka 可以脱离 Zookeeper 单独使用吗&#xff1f;为什么&#xff1f; kafka不能脱离zookper单独使用&#xff0c;因为kafka使用zookper管理和协调kafka的节点服务器。 2、Kafka 有几种数据保留的策略&#xff1f; Kafka提供了多种数据保留策略&#xff0c;这些策略用于定…

哈希双指针

文章目录 一、哈希1.1两数之和1.2字母异位词分组1.3最长子序列 二、双指针2.1[移动零](https://leetcode.cn/problems/move-zeroes/description/?envTypestudy-plan-v2&envIdtop-100-liked)2.2[盛最多水的容器](https://leetcode.cn/problems/container-with-most-water/d…

嵌入式0基础开始学习 ⅠC语言(7)指针

0.问题引入 int a 5; a 1024; //把1024存放到变量a的地址中去 b a; // 取变量a的值&#xff0c;赋值给b >在c语言中&#xff0c;任何一个变量&#xff0c;都有两层含义 (1)代表变量的存储单元的地址&#xff1a;变量的地址…

蓝桥楼赛第30期-Python-第三天赛题 统计学习数据题解

楼赛 第30期 Python 模块大比拼 统计学习数据 介绍 JSON&#xff08;JavaScript Object Notation, /ˈdʒeɪsən/&#xff09;是一种轻量级的数据交换格式&#xff0c;最初是作为 JavaScript 的子集被发明的&#xff0c;但目前已独立于编程语言之外&#xff0c;成为了通用的…

分享10个国内可以使用的GPT中文网站

在今天的人工智能领域&#xff0c;基于对话的语言模型已成为研究的热点&#xff0c;尤其是像 ChatGPT 这样因其出色的语言理解与对话交互能力而广受关注的模型。本文将介绍10个国内可以直接使用GPT的网站&#xff0c;旨在为大家在选择和使用这些优秀的AI工具时提供有价值的参考…

使用pyqt绘制一个爱心!

使用pyqt绘制一个爱心&#xff01; 介绍效果代码 介绍 使用pyqt绘制一个爱心&#xff01; 效果 代码 import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget from PyQt5.QtGui import QPainter, QPen, QBrush, QColor from PyQt5.QtCore import Qt, Q…

[保姆式教程]使用目标检测模型YOLO V8 OBB进行旋转目标的检测:训练自己的数据集(基于卫星和无人机的农业大棚数据集)

最近需要做基于卫星和无人机的农业大棚的旋转目标检测&#xff0c;基于YOLO V8 OBB的原因是因为尝试的第二个模型就是YOLO V8&#xff0c;后面会基于YOLO V9模型做农业大棚的旋转目标检测。YOLO V9目前还不能进行旋转目标的检测&#xff0c;需要修改代码 PS:欢迎大家分享农业大…

【研发日记】Matlab/Simulink技能解锁(九)——基于嵌入式处理器仿真

文章目录 前言 基于嵌入式处理器仿真 使用方式 第一步&#xff0c;硬件连接 第二步&#xff0c;配置硬件资源 第三步&#xff0c;配置XCP协议 第四步&#xff0c;加载Contrl Model 第五步&#xff0c;运行仿真 第六步&#xff0c;仿真报告 分析和应用 总结 参考资料 前言…

无线技术整合到主动噪声控制(ANC)增强噪声降低性能

主动噪声控制&#xff08;ANC&#xff09;已成为一种广泛使用的降噪技术。基本原理是通过产生与外界噪音相等的反向声波&#xff0c;将噪音中和&#xff0c;从而达到降噪的效果。ANC系统通常包括以下几个部分&#xff1a;参考麦克风、处理芯片、扬声器和误差麦克风。参考麦克风…

家政保洁服务小程序怎么做?家政公司快速搭建专属小程序

在数字化时代背景下&#xff0c;家政保洁服务行业也迎来了线上转型的新机遇。家政保洁服务小程序&#xff0c;作为一种新型的线上服务平台&#xff0c;不仅能够提升家政公司的服务效率&#xff0c;还能为顾客提供更加便捷的预约上门服务体验。那么家政保洁服务小程序怎么做呢&a…

AI与量子计算:科技新时代的双重飞跃

在科技的浪潮中,每一次技术革新都如同一次深海潜行,探寻着未知的奥秘。近年来,人工智能(AI)和量子计算两大领域的发展尤为引人注目,它们不仅代表了科技的未来趋势,更是人类社会进步的强大动力。本文将深入探讨这两项技术的最新进展、潜在影响以及它们之间的潜在联系。 …

2024年3月小程序类目调整汇总公告

各位小程序开发者&#xff1a; 为进一步加强平台的规范管理&#xff0c;优化开发者类目选择体验&#xff0c;现对以下类目进行调整&#xff0c;请各位开发者知悉。 类目调整 #【文娱-小说】 现资质要求 &#xff08;3选1&#xff09;&#xff1a; 1、提供《互联网出版许可…

从零开始搭建一个SpringBoot项目

目录 Spring BootSpring Boot 项目开发环境1、快速创建SpringBoot项目2、pom.xml 添加 Meavn 依赖3、配置application.yml4、验证数据库是否连接成功5、配置 Druid 数据源 Spring Boot 整合 MyBatis1、准备依赖2、application-dev.yml 配置3、启动类添加Mapper接口扫描器4、设置…

BWVS 靶场测试

一、PHP弱类型 is_numeric() 输入&#xff1a;127.0.0.1/BWVS/bug/php/code.php # 1、源代码分析 如果num不是数字&#xff0c;那么就输出num&#xff0c;同时如果num1&#xff0c;就输出flag。即num要是字符串又要是数字 # 2、函数分析&#xff1a; is_numeric()函数&…

使用Nginx的Mirror模块的指南

Nginx 是一个广泛使用的 web 服务器和反向代理服务器&#xff0c;性能出色且易于配置。Nginx 提供了各种模块来扩展其功能&#xff0c;其中一个有用的模块是 mirror 模块。本文将详细介绍 Nginx 的 mirror 模块&#xff0c;包括其用途、使用场景、注意事项以及示例代码。 1. m…

《最新出炉》系列入门篇-Python+Playwright自动化测试-40-录制生成脚本

宏哥微信粉丝群&#xff1a;https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介 各种自动化框架都会有脚本录制功能&#xff0c; playwright这么牛叉当然也不例外。很早之前的selenium、Jmeter工具&#xff0c;发展到每种浏览器都有对应的录制插件。今天我们…