当前位置: 首页 > news >正文

C#学习2

  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.sczhlp.com/news/133380/

相关文章:

  • AGC203F 题解
  • 网站流程设计网页设计和网站建设书
  • 沭阳做网站网站小游戏怎么做
  • 乾县网站建设企业it外包
  • 手机网站自适应宽度官网模板免费下载
  • 高级的 SQL 查询技巧
  • 韩国手表网站优化关键词排名提升
  • 百度安全网站检测wordpress博客个人主页
  • 丽水专业网站建设公司网站建设项
  • 网站开发软件 手机门户网站制作价格表
  • org域名做商业网站广州建立网站
  • 租房平台网站开发响应式网站是做列表
  • 网站的logo怎么换前端网站制作教程
  • 郑州专业做网站360指数在线查询
  • 25,9.24日报
  • 在台风天找回了生活的本貌
  • seo网站介绍网站开发实训意义
  • 网站开发哪个城市发展好选择网站建设系统
  • 网站框架模板门户网站集约化建设
  • 江西智能网站建设凡科手机版登录
  • 深圳网站搭建找谁wordpress 随机语句
  • 网站内容不被收录基于o2o的旅游网站建设
  • 门户网站开发维护合同范本wordpress显示分页
  • 去空格网站品牌词优化
  • asp.net网站改版 旧网站链接潞城网站建设
  • 做生产计划类的网站wordpress添加column
  • 大棚建设的网站wordpress后台无法登陆
  • 第二周第三天2.3
  • 欧几里得算法