zoukankan      html  css  js  c++  java
  • C# 重载,重写,代理,枚举实例

    1.日期说法时区不同所取到的值也不同, 多个国的服务器要注意这个玩意

    DateTime newDate = DateTime.Now;
    Console.WriteLine(newDate.ToString());
    Console.WriteLine(newDate.ToString(CultureInfo.InstalledUICulture));//根据当前操作系统,时区选择
    Console.WriteLine(newDate.ToString("00", CultureInfo.InvariantCulture));

    2.代理方法, 参数函数化 , 哦原来这就是代理呀!

     1 class Program
     2 {
     3         Main方法
     4         static void Main(string[] args)
     5         {
     6             @Class3 obj1 = new Class3();
     7             var num1 = 123;
     8             var num2 = 456;
     9             var str = obj1.subFun(delegate (int aa)
    10             {
    11                 return num1 + num2 + aa;
    12             });
    13 
    14             Console.WriteLine(str);
    15         }
    16 }
    17 
    18 public class @Class3
    19 {
    20 
    21     public string subFun(Func<int, int> funcName)
    22     {
    23         var aa = 1;
    24         int cc = funcName(aa);
    25         return cc.ToString();
    26     }
    27 }
    View Code

    3.重写 重载 区别 重写什么类型,就走那个类的重写方法

     1 class Program
     2 {
     3         Main方法
     4         static void Main(string[] args)
     5         {
     6             /**
     7              * 重载 同类/子类中 override  同名不同参
     8              * 重写 同类/子类中 new  同名同参
     9              * 利用反射  可反射出父类子实现对象中子类中的  属性,方法
    10              * **/
    11 
    12             @Class1 obj = new @Class1();
    13             obj.overrideFunc("@Class1");
    14             obj.overrideFunc("1", "2");
    15             Console.WriteLine(obj.message);
    16 
    17 
    18             @Class2 obj1 = new @Class2();
    19             obj1.overrideFunc("@Class2");
    20             obj1.overrideFunc("1", "2");
    21             obj1.overrideFunc("1", "2", "3");
    22             Console.WriteLine(obj1.message1);
    23 
    24 
    25             @Class1 obj2 = new @Class2();
    26             obj2.overrideFunc("@Class1:@Class2");
    27             obj2.overrideFunc("1", "2");
    28             Console.WriteLine(obj2.message);
    29             Console.WriteLine(JsonConvert.SerializeObject(obj2));
    30 
    31 
    32             Type typeObj = obj2.GetType();
    33             PropertyInfo proObj = typeObj.GetProperty("message1");
    34             Console.WriteLine(proObj.GetValue(obj2));
    35         }
    36 }
    37 
    38 public class @Class1
    39 {
    40     public string message { get; set; } = "@Class1";
    41     public void overrideFunc(string message)
    42     {
    43         Console.WriteLine(message);
    44     }
    45 
    46     public void overrideFunc(string message, string message2)
    47     {
    48         Console.WriteLine($"{message},{message2}我是被@Class1重载的");
    49     }
    50 }
    51 
    52 public class @Class2 : @Class1
    53 {
    54     public string message1 { get; set; } = "@Class2";
    55 
    56     public new void overrideFunc(string message)
    57     {
    58         Console.WriteLine($"{message}我被重写过");
    59     }
    60     public void overrideFunc(string message, string message1, string message2)
    61     {
    62         Console.WriteLine($"{message},{message2},{message2}我是被@Class2重载的");
    63 
    64     }
    65 
    66 }

    4.枚举 使用 其实需要一个扩展方法,来 名称转值,值转名称的

    EnumType enumObj = EnumType.类型1;
    Console.WriteLine(EnumType.类型1);
    Console.WriteLine((int)Enum.Parse(typeof(EnumType), "类型1", true));
  • 相关阅读:
    java算法:树遍历
    java算法:图遍历(深度优先和广度优先)
    Google禁止继续研发开源的"盖亚计划"
    Vc编程调试入门
    访著名Linux内核程序员大鹰
    访著名Linux内核程序员大鹰
    百度玩"精准搜索" 个人隐私保护问题值得商榷
    Google禁止继续研发开源的"盖亚计划"
    加密CMD使电脑溢出也拿不到CMD权限
    百度玩"精准搜索" 个人隐私保护问题值得商榷
  • 原文地址:https://www.cnblogs.com/nnqwbc/p/11114181.html
Copyright © 2011-2022 走看看