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));
  • 相关阅读:
    Lucene in action 笔记 case study
    关于Restful Web Service的一些理解
    Lucene in action 笔记 analysis篇
    Lucene in action 笔记 index篇
    Lucene in action 笔记 term vector
    Lucene in action 笔记 search篇
    博客园开博记录
    数论(算法概述)
    DIV, IFRAME, Select, Span标签入门
    记一个较困难的SharePoint性能问题的分析和解决
  • 原文地址:https://www.cnblogs.com/nnqwbc/p/11114181.html
Copyright © 2011-2022 走看看