Csharp 匿名类型
匿名类型定义在 C# 中,匿名类型是一种可以在不定义具体类型(如类)的情况下创建对象的方式。匿名类型提供了一种便捷的方法来封装一组只读属性,通常用于临时的数据存储和传递。 匿名类型的实例是由编译器自动生成的类型,其类型名对于开发者是不可见的。例如: 1var person = new { Name = "John", Age = 30 }; 这里创建了一个匿名类型的对象person,它有两个属性Name和Age。var关键字让编译器根据初始化表达式来推断变量的类型。 属性访问 可以通过对象实例来访问其属性。例如,对于上面的person对象,可以这样访问属性: 12Console.WriteLine(person.Name); Console.WriteLine(person.Age); 由于匿名类型的属性是只读的,不能对其进行重新赋值。例如,下面的代码是错误的: 1person.Name = "Jane"; // 编译错误,因为匿名类型的属性是只读的 用途LINQ 查询结果的临时存储:在...
Csharp 构造函数的使用,this关键字
构造函数什么是构造函数?定义在 C# 中,构造函数是一种特殊的方法,它与类同名,并且没有返回类型(甚至不能是 void)。构造函数主要用于在创建类的对象时初始化对象的状态。例如,当你创建一个Person类的对象时,可以使用构造函数来初始化Person对象的姓名、年龄等属性。 默认构造函数如果一个类中没有定义任何构造函数,C# 编译器会自动提供一个默认构造函数。这个默认构造函数没有参数,并且它的作用是初始化对象的成员变量为它们的默认值(例如,数值类型为 0,引用类型为null)。 例如: 123456789101112class MyClass{ int myVariable;}class Program{ static void Main() { MyClass obj = new MyClass(); // 此时obj.myVariable的值为0 ...
Csharp public与private说明 set-get方法
set-get方法的使用在 C# 中,get 和 set 主要用于定义属性(Property),属性是一种用于封装字段(Field)的成员,它提供了对字段的访问控制,使得可以更安全、更方便地读取和修改字段的值。以下是关于 get 和 set 的详细介绍: 1. 属性的基本概念 属性结合了字段和方法的优点,从外部看它就像一个字段,可以像访问字段一样访问属性;但在内部,它通过 get 和 set 访问器来控制对字段的读写操作。 2. 完整属性定义(包含 get 和 set) 123456789101112131415161718192021222324252627282930313233class Person{ // 私有字段,用于存储数据 private string _name; // 公共属性,用于封装 _name 字段 public string Name { get { // get 访问器用于获取属性的值 return _name; ...
Csharp类的定义和使用
类的定义在 C# 中,类是一种用户定义的数据类型,它是面向对象编程的基本构建块。类用于封装数据(通过字段)和行为(通过方法)。定义一个类的基本语法如下: 1234class ClassName{ // 类的成员(字段、方法、属性等)} 例如,定义一个简单的Person类: 12345678910class Person{ // 字段,用于存储人的姓名 public string Name; // 方法,用于打印问候语 public void SayHello() { Console.WriteLine($"Hello, my name is {Name}."); ...
Csharp面向对象概念引入
面向对象编程(Object - Oriented Programming)面向对象概念引入: 从实际生活场景类比引入 想象我们要开发一个汽车管理系统。在现实生活中,汽车是一个具有多种属性和行为的实体。汽车有颜色(如红色、蓝色)、品牌(如丰田、宝马)、速度(如 0 - 200km/h)等属性,还有启动、加速、刹车等行为。 在 C# 中,我们可以把汽车抽象成一个类(class),就像创建一个汽车的蓝图。这个类可以定义汽车的各种属性和行为。例如: 12345678910111213141516171819202122class Car{ // 汽车的属性 public string Color; public string Brand; public int Speed; // 汽车的行为(方法) public void Start() { Console.WriteLine("The car has started."); } public void...
Csharp try-catch-finally语句处理异常
Csharp 使用try-catch-finally语句处理异常 在 C# 编程中,try - catch - finally语句是一种强大的机制,用于处理程序运行时可能出现的异常情况。异常是在程序执行过程中出现的错误或意外情况,例如试图访问不存在的文件、数组越界、除数为零等操作。使用try - catch - finally可以让程序在遇到这些异常时采取适当的措施,而不是直接崩溃。 try 块功能:try块是包含可能会抛出异常的代码部分。这是异常处理的起点,当程序执行到try块中的代码时,会监控其中的操作是否会引发异常。 示例: 12345try{ int[] numbers = { 1, 2, 3 }; Console.WriteLine(numbers[3]);// 这里会抛出IndexOutOfRangeException异常,因为数组最大索引是2} 在这个示例中,代码试图访问数组numbers中不存在的索引(索引为 3,而数组长度为 3,有效索引范围是 0 -...
函数clac(),css 媒体查询
calc 在 CSS 中,calc() 是一个非常有用的函数,它允许你在 CSS 属性值中进行数学计算。这使得你可以根据不同的长度单位(如像素、百分比等)动态地计算属性值,为网页布局提供了更大的灵活性。以下是关于 calc() 的详细介绍: 基本语法 calc() 函数的基本语法如下: 1calc(expression) 其中 expression 是一个数学表达式,该表达式可以包含加(+)、减(-)、乘(*)、除(/)四种基本运算符,同时可以使用不同的长度单位,如 px、%、em、rem 等。需要注意的是,运算符前后必须有空格。示例代码及解释 使用 calc() 进行宽度计算1234567891011121314151617181920212223242526272829<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport"...
学习CSS.14学习笔记
伸缩容器,伸缩项目 伸缩容器:开启了flex的元素,就是:伸缩容器。 1.给元素设置:dispay:flex或display:inline-flex,该元素就变为了伸缩容器。2.display:inline-flex很少使用,因为可以给多个伸缩容器的父容器,也设置为伸缩容器。3.一个元素可以同时是:伸缩容器、伸缩项目。 伸缩项目:伸缩容器所有子元素自动成为了:伸缩项目。 1.仅伸缩容器的子元素成为了伸缩项目,孙子元素、重孙子元素等后代,不是伸缩项目。2.无论原来是哪种元素(快、行内块、行内),一旦成为了伸缩项目,全都会“块状化”。 主轴与侧轴 主轴:伸缩项目沿着主轴排列,主轴默认是水平的,默认方向是:从左到右(左边是起点,右边是终点)。 侧轴:与主轴垂直的就是侧轴,侧轴默认是垂直的,默认方向是:从上到下(上边是起点,下边是终点)。 主轴方向 属性名:flex-direction 常用值如下: row:主轴方向水平从左到右--默认值 row-reverse:主轴方向水平从右到左。 column:主轴方向垂直从上到下。 ...
学习CSS.13学习笔记
CSS 动画 相较于传统的脚本实现动画技术,使用 CSS 动画有三个主要优点: 1.能够非常容易地创建简单动画,你甚至不需要了解 JavaScript 就能创建动画。 2.动画运行效果良好,甚至在低性能的系统上。渲染引擎会使用跳帧或者其他技术以保证动画表现尽可能的流畅。而使 用 JavaScript 实现的动画通常表现不佳(除非经过很好的设计)。 3.让浏览器控制动画序列,允许浏览器优化性能和效果,如降低位于隐藏选项卡中的动画更新频率。 CSS 动画是网页设计中用于创建动态和交互效果的强大工具,以下是关于 CSS 动画的学习内容: 基本概念 关键帧:CSS 动画通过定义关键帧来描述动画的不同状态。关键帧使用@keyframes规则来创建,它允许你指定动画在不同时间点的属性值。 动画属性:通过一系列 CSS 动画属性来控制动画的行为,包括动画名称、持续时间、播放次数、播放方向、延迟时间等。 主要属性 @keyframes 语法:@keyframes animationName { keyframe-selector { property:...
学习CSS.12学习笔记
CSS 过渡 CSS 过渡是 CSS 中一项非常实用的特性,它可以在元素的属性值发生变化时创建平滑的过渡效果,提升用户体验。以下是关于 CSS 过渡的学习内容: 基本概念 过渡属性:CSS 过渡主要通过transition属性来实现,它是一个复合属性,用于设置过渡效果的各个方面,包括过渡的属性、持续时间、过渡函数和延迟时间。 过渡效果触发:通常在元素的状态发生改变时触发过渡效果,比如鼠标悬停(:hover)、获取焦点(:focus)、激活(:active)等伪类状态变化,或者通过 JavaScript 动态修改元素的属性值。 transition属性 语法:transition: property duration timing-function delay; property:指定要应用过渡效果的 CSS...