C#学习3

news/2025/9/25 23:22:19/文章来源:https://www.cnblogs.com/zhanglijian/p/19110321
  1. 面向对象编程进阶
    继承
    csharp
    // 基类
    public class Animal
    {
    public string Name

    public virtual void Speak()
    {
    Console.WriteLine("动物发出声音");
    }
    }

// 派生类
public class Dog : Animal
{
public override void Speak()
{
Console.WriteLine("汪汪!");
}
}

// 使用
Dog dog = new Dog { Name = "Buddy" };
dog.Speak(); // 输出:汪汪!
抽象类和接口
csharp
// 抽象类
public abstract class Shape
{
public abstract double CalculateArea();
}

// 接口
public interface IDrawable
{
void Draw();
}

// 实现
public class Circle : Shape, IDrawable
{
public double Radius { get; set; }

public override double CalculateArea()
{return Math.PI * Radius * Radius;
}public void Draw()
{Console.WriteLine("绘制圆形");
}

}
12. 属性和访问器
csharp
public class Person
{
private string name;
private int age;

// 自动属性
public string Email { get; set; }// 完整属性
public string Name
{get { return name; }set { if (!string.IsNullOrEmpty(value))name = value; }
}// 只读属性
public int BirthYear { get; private set; }// 计算属性
public bool IsAdult => age >= 18;

}
13. 委托和事件
csharp
// 委托定义
public delegate void MessageHandler(string message);

public class Publisher
{
// 事件定义
public event MessageHandler OnMessageSent;

public void SendMessage(string message)
{Console.WriteLine($"发送消息: {message}");OnMessageSent?.Invoke(message); // 触发事件
}

}

public class Subscriber
{
public void HandleMessage(string message)
{
Console.WriteLine($"收到消息: {message}");
}
}

// 使用
var publisher = new Publisher();
var subscriber = new Subscriber();

publisher.OnMessageSent += subscriber.HandleMessage;
publisher.SendMessage("Hello World!");
14. LINQ (语言集成查询)
csharp
List numbers = new List { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// 查询语法
var evenNumbers = from num in numbers
where num % 2 == 0
select num;

// 方法语法
var squares = numbers.Where(n => n % 2 == 0)
.Select(n => n * n);

// 更多LINQ操作
var firstNumber = numbers.First();
var lastNumber = numbers.Last();
var maxNumber = numbers.Max();
var orderedNumbers = numbers.OrderBy(n => n);
var groupedNumbers = numbers.GroupBy(n => n % 2 == 0 ? "偶数" : "奇数");
15. 泛型
csharp
// 泛型类
public class Repository
{
private List items = new List();

public void Add(T item)
{items.Add(item);
}public T Get(int index)
{return items[index];
}

}

// 泛型方法
public static T Max(T a, T b) where T : IComparable
{
return a.CompareTo(b) > 0 ? a : b;
}

// 使用
var stringRepo = new Repository();
stringRepo.Add("Hello");

var intRepo = new Repository();
intRepo.Add(42);

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

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

相关文章

9-23

(1)今天预习了java的课程 (2)明天继续深造

9-26

(1)今天预习了java的课程 (2)明天继续深造

微信网站设计运营北京网站建设哪家专业

Prefect 是一个用于构建、调度和监控数据流程的 Python 库。它提供了一种简单而强大的方式来管理 ETL(Extract, Transform, Load)工作流程。下面是一个简单的示例,演示了如何使用 Prefect 来创建和运行一个简单的任务: 首先&…

长春网长春网站建设站建设服务专业建设

Sftp服务器搭建(linux) 一、基本工作原理 FTP的基本工作原理如下: 1)建立连接:客户端与服务器之间通过TCP/IP建立连接。默认情况下,FTP使用端口号21作为控制连接的端口。​​​​​​​ 2)身…

Ubuntu Uninstall App

dpkg -lsudo apt purge firefox

20250925

今天算法与数据结构课学链表,链表是一种线性数据结构,通过指针将一系列节点连接起来,每个节点包含数据域和指针域。和数组相比,链表不需要预先分配固定大小的空间,在插入和删除元素时更灵活。老师写代码演示如何创…

题解:P2662 牛场围栏

省流:同余最短路 本题是一道同余最短路算法的好题。接下来讲讲个人对这道题的理解。 首先,根据题意,我们知道,我们可以获得最多 \(m \times (m +1)\) 种木棍长度。我们设 \(t\) 为这个最大值,则木棍长度可表示为 …

day11 课程(学员管理系统案例)

day11 课程(学员管理系统案例)课程:https://www.bilibili.com/video/BV1o4411M71o?spm_id_from=333.788.videopod.episodes&p=204 11.1 函数加强简介------------------------------------------------ 执行后…

c语言初步学习

c语言初步学习学习c语言必须知道的代码 int main() {return 0; }在c语言里main函数是整个函数的入口点括号用来接收参数,括号为空则不接受外部数据符号皆为英文标点int是为了表明return后面的东西的类型

企业网站适合响应式嘛用ps可以做网站吗

分区的概念 分区实质上是根据特定的规则,将表划分为若干个独立的物理存储单位。以MySQL为例,表会被拆分为多个物理文件。而在OceanBase​​​​​​​中,每个分区则表现为一个物理副本组,每个分区默认都拥有三个副本。 分区表的优…

庐山网站建设大数据营销工具

要解决的问题 如何记录请求经过多个分布式服务的信息,以便分析问题所在?如何保证这些信息得到完整的追踪?如何尽可能不影响服务性能? 追踪 当用户请求到达前端A,将会发送rpc请求给中间层B、C;B可以立刻作…

Cloudflare安全验证过程全解析

本文详细解析了OpenBugBounty网站通过Cloudflare进行安全验证的完整流程,包括人机验证、连接安全检查、JavaScript启用要求等关键环节,揭示了现代Web安全防护的核心技术实现。验证流程分析 初始验证阶段 网站显示&qu…

2025.9.25总结 - A

今天上午是数据结构和篮球,收获颇多,强身健体。

天津企业模板建站在wordpress中设置mx记录

一般这种问题是因为某个文件/某个文件夹/某些文件夹过大导致整个项目超过1G了导致的 试过其他教程里的设置depth为1,也改过git的postBuffer,都不管用 最后还是靠克隆指定文件夹这种方式成功把项目拉下来 1. Git Bash 输入命令 git clone --filterblob:none --sparse 项目路径…

建设局查询网站哪做网站比较好

文章目录 地址下载启动 使用 地址 JMeter官网下载:https://jmeter.apache.org/download_jmeter.cgi 下载 最新款的jmeter需要java8的支持,请自行安装jdk8或以上的版本 根据系统不同系统下载zip或者是tgz格式的压缩包,并解压,博…

团购网站建设公司做邮轮上哪个网站订票好

2023-2024华为ICT大赛 计算赛道 广东省 省赛 初赛 高职组 部分赛题 分析【2023.11.18】 文章目录 单选题tpcds模式中存在表customer,不能成功删除tpcds模式是( )以下哪个函数将圆转换成矩形( )下列哪个选项表示依赖该D…

做宣传图片的网站互联网保险乱象

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

US$128 OBD II Adapter Plus OBD Cable Works with CKM100 and DIGIMASTER III for Key Programming

OBD II Adapter Plus OBD Cable Works with CKM100 and DIGIMASTER III for Key ProgrammingNote: Connect the adapter cable with device firstly! Then connect the cable with car OBD socket.Special Function: S…

jmeter函数

__Random产生一个随机数 #${__Random(起始,终止,变量名)} ${__Random(0,10, num)} 引用变量:${num}__RandomDate指定时间段产生一个日期 #${__RandomDate(时间指定格式(默认yyyy mm dd),起始时间,终止时间,语言…

Python建立ETF网格自动化交易集成动量阈值判断

Python建立ETF网格自动化交易集成动量阈值判断pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…