首页 > 其他分享 >查缺补漏

查缺补漏

时间:2024-05-11 21:30:06浏览次数:10  
标签:补漏 Console string 接口 DateTime WriteLine 查缺 public

合并枚举  [Flags]

参考: Flags 特性 c#_c# flags属性-CSDN博客

[Flags]
public enum Options
{
    Insetred = 1,
    Update = 2,
    Query = 3,
    Delete = 4,
    ALL = Insetred | Update | Query | Delete
}

 

User user = new User();
user.Option = Options.Delete | Options.Update;
Console.WriteLine(user.Option.ToString());
//是否包含 枚举
if (user.Option.HasFlag(Options.Update))
{
    Console.WriteLine("用户可以更新");
}

User user1 = new User();
user1.Option = Options.ALL;
Console.WriteLine(user1.Option);
if (user1.Option.HasFlag(Options.Delete))
{
    Console.WriteLine("用户可以删除");
}

 

C#解构器 

参考: C#解构器_c# deconstruct-CSDN博客

 

关键字 Deconstruct  使用  Deconstruct(out DateTime createTime, out string orderCode)

 

    public class Order
    {
        public Order(DateTime createTime, string orderCode)
        {
            CreateTime = createTime;
            OrderCode = orderCode;
        }

        public DateTime CreateTime { get; set; }
        public string OrderCode { get; set; }

        public void Deconstruct(out DateTime createTime, out string orderCode)
        {
            createTime = CreateTime;
            orderCode = OrderCode;
        }
    }

 

  

 

使用   (DateTime createTime, string orderCode) = order;

Order order =new Order(DateTime.Now,"订单001");
(DateTime createTime, string orderCode) = order;
Console.WriteLine($"订单生成时间:{createTime.ToString("yyyy-MM-dd HH-mm-ss")},订单号:{orderCode}");

  

 

 implicit 隐式转换 explicit 显示转换 

静态 ,关键字  operator 

public class Student
{
    public Student(string all)
    {
        All = all;
    }
    public string All { get; set; }
    public static implicit operator Student(Person person)
    {
        return new Student(person.FirstName + " " + person.LastName);
    }
    public static explicit operator Person(Student student)
    {
        return new Person() { FirstName = student.All };
    }
}

 使用 

Console.WriteLine("====隐式转换=====");
//隐式转换
Student student = person;
Console.WriteLine(student.All);
//显示转换
Person person3 = (Person)student;
Console.WriteLine("====显示转换=====");
Console.WriteLine(person3.FirstName);

  

 

ICollection

ICollection 接口是 System.Collections 命名空间中类的基接口,ICollection 接口扩展 IEnumerable,IDictionary 和 IList 则是扩展 ICollection 的更为专用的接口。如果 IDictionary 接口和 IList 接口都不能满足所需集合的要求,则从 ICollection 接口派生新集合类以提高灵活性。

ICollection是IEnumerable的加强型接口,它继承自IEnumerable接口,提供了同步处理、赋值及返回内含元素数目的功能

IEnumerable接口

1、IEnumerable接口是ICollection的父接口,凡实现此接口的类,都具备“可迭代”的能力。

2、IEnumerable接口只定义了一个方法:GetEnumerator,该方法将返回一个“迭代子”对象(或称为迭代器对象),是一个实现了IEnumerator接口的对象实例。

3、凡是实现了IEnumerable接口的类,都可以使用foreach循环迭代遍历。

4` 可以使用yield return  跳出循环 yield break

 

   public IEnumerable<string> GetNames()
   {
        yield return "汤姆";
        yield return "吉瑞";
   }

  

使用

Console.WriteLine("====使用yied return=====");
List<string> names = order.GetNames().ToList();
Console.WriteLine(string.Join(",", names));
Console.WriteLine("====使用yied return end=====");

  

c# DateTimeOffset DateTime TimeSpan 不同点

比较与日期和时间相关的类型 - .NET | Microsoft Learn

C#中 DateTime , DateTime2 ,DateTimeOffset 之间的小区别 (转载)-CSDN博客

 

 

 

 

 

  

 

标签:补漏,Console,string,接口,DateTime,WriteLine,查缺,public
From: https://www.cnblogs.com/yyxone/p/18187179

相关文章

  • C#/.NET/.NET Core拾遗补漏合集(24年4月更新)
     前言在这个快速发展的技术世界中,时常会有一些重要的知识点、信息或细节被忽略或遗漏。《C#/.NET/.NETCore拾遗补漏》专栏我们将探讨一些可能被忽略或遗漏的重要知识点、信息或细节,以帮助大家更全面地了解这些技术栈的特性和发展方向。GitHub开源地址https://github.com/Y......
  • 第二十五周代码(蓝桥杯查缺补漏)
    2024/03/31    周日填充题目链接【参考代码】想用暴力,没过//枚举,未出结果QAQ#include <bits/stdc++.h>using namespace std;string s00 = "00";string s11 = "11";int ans = 0;//m个问号,子串有2^m种,使用dfs//初步思路:分割子串,直到只有两......
  • C#/.NET/.NET Core拾遗补漏合集(持续更新)
    前言在这个快速发展的技术世界中,时常会有一些重要的知识点、信息或细节被忽略或遗漏。《C#/.NET/.NETCore拾遗补漏》专栏我们将探讨一些可能被忽略或遗漏的重要知识点、信息或细节,以帮助大家更全面地了解这些技术栈的特性和发展方向。GitHub开源地址https://github.com/Y......
  • 【STM32】成功创建Keil MDK工程的条件(可对照查缺补漏)
    文中所有文件夹数量和名称没有限制,按自己理解建也OK。首先:确保编码格式正确(UTF-8),可在小扳手那里更改。安装对应芯片器件支持包。建启动文件夹Start(记得在Keil项目界面添加同名分组导入文件),启动文件的最后字母为型号缩写。STM32F1系列的具体芯片型号缩写参照下表:建......
  • 边做笔试边查缺补漏——算法、js基础、vue3官方文档、八股文
    边投简历边完善自己的知识库。最近这些天一直在面试和笔试+投简历中,每次面试或笔试完后其实最重要的不是结果,而是做题的过程或者说对话的过程。因为只有这些才让我知道自己哪里还有不足,比如一碰到算法题就歇菜、vue3和vue2混用、js基础知识不牢固等等。那我痛定思痛,有缺点咱就认......
  • DP查缺补漏之LCS状态重叠
    DP查缺补漏之\(LCS\)状态重叠状态假设\(F[i][j]\)为\(a\)串中前\(i\)个字符,\(b\)串中前\(j\)个字符构成的\(LCS\)状态转移\(F[i-1][j-1]+1\)即当且仅当\(a[i]=b[j]\)时,从两个序列的减去当前的字符加一推出\(F[i-1][j]\)不选\(a[i]\),只选\(b[j]\)\(F[i......
  • DP查缺补漏之LIS状态记录
    DP查缺补漏之\(LIS\)状态记录前置知识状态假设\(F[i]\)为以\(a[i]\)为结尾的最长上升子序列长度。状态转移\(F[i]=max(F[j]+1,F[i])(j<i)\)很好理解,即\(i\)之前的所有以\(a[j]\)结尾的最长上升子序列中取最大,再加上\(a[i]\)即加一。代码实现for(inti=1;i<=......
  • DP查缺补漏之多重背包优化原理
    DP查缺补漏之多重背包优化原理普通思路类似完全背包for(inti=1;i<=n;i++)for(intj=1;j<=V;j++)for(intk=1;k<=V/c[i];k++){if(k*c[i]<=j)f[i][j]=max(f[i-1][j],f[i-1][j-k*c[i]]+k*w[i]);......
  • [学习笔记]TypeScript查缺补漏(二):类型与控制流分析
    @目录类型约束基本类型联合类型控制流分析instanceof和typeof类型守卫和窄化typeof判断instanceof判断in判断内建函数,或自定义函数赋值布尔运算保留共同属性字面量类型(literaltype)asconst作用类型约束TypeScript中的类型是一种用于描述变量、函数参数和函数返回值的特征的方......
  • DP查缺补漏之01背包优化原理
    DP查缺补漏之01背包优化原理先复习一下基本知识状态假设DP[I][J]为前\(i\)个物品,容量小于\(j\)时的最优解(最大价值)状态转移DP[I][J]=max(DP[I-1][J],DP[I-1][J-V[I]]+W[I])对于第\(i\)个物品,两种可能装入背包则状态应通过前\(i-1\)个物品,容量小于\(j......