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

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

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

  1. class Program
  2. {
  3. Main方法
  4. static void Main(string[] args)
  5. {
  6. @Class3 obj1 = new Class3();
  7. var num1 = ;
  8. var num2 = ;
  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 = ;
  24. int cc = funcName(aa);
  25. return cc.ToString();
  26. }
  27. }

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("", "");
  15. Console.WriteLine(obj.message);
  16.  
  17. @Class2 obj1 = new @Class2();
  18. obj1.overrideFunc("@Class2");
  19. obj1.overrideFunc("", "");
  20. obj1.overrideFunc("", "", "");
  21. Console.WriteLine(obj1.message1);
  22.  
  23. @Class1 obj2 = new @Class2();
  24. obj2.overrideFunc("@Class1:@Class2");
  25. obj2.overrideFunc("", "");
  26. Console.WriteLine(obj2.message);
  27. Console.WriteLine(JsonConvert.SerializeObject(obj2));
  28.  
  29. Type typeObj = obj2.GetType();
  30. PropertyInfo proObj = typeObj.GetProperty("message1");
  31. Console.WriteLine(proObj.GetValue(obj2));
  32. }
  33. }
  34.  
  35. public class @Class1
  36. {
  37. public string message { get; set; } = "@Class1";
  38. public void overrideFunc(string message)
  39. {
  40. Console.WriteLine(message);
  41. }
  42.  
  43. public void overrideFunc(string message, string message2)
  44. {
  45. Console.WriteLine($"{message},{message2}我是被@Class1重载的");
  46. }
  47. }
  48.  
  49. public class @Class2 : @Class1
  50. {
  51. public string message1 { get; set; } = "@Class2";
  52.  
  53. public new void overrideFunc(string message)
  54. {
  55. Console.WriteLine($"{message}我被重写过");
  56. }
  57. public void overrideFunc(string message, string message1, string message2)
  58. {
  59. Console.WriteLine($"{message},{message2},{message2}我是被@Class2重载的");
  60.  
  61. }
  62.  
  63. }

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

  1. EnumType enumObj = EnumType.类型1;
  2. Console.WriteLine(EnumType.类型1);
  3. Console.WriteLine((int)Enum.Parse(typeof(EnumType), "类型1", true));

C# 重载,重写,代理,枚举实例的更多相关文章

  1. java的多态以及重载,重写,前期绑定,后期绑定

    多态的定义: 一个类实例的相同方法在不同情形有不同表现形式.多态机制使具有不同内部结构的对象可以共享相同的外部接口.这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通 ...

  2. Java重载重写与实现方法的规则

    这几天在实训过程中做到了一个题,这个题目问的是 非抽象类实现接口后,必须实现接口中的所有抽象方法,除了abstract外,方法头必须完全一致.这句话是错误的.然后在做错以后自己总结一下重载 重写 和实 ...

  3. 重载重写重定义-易混淆概念-C++编译器处理方式

    1.函数重载 1)必须在同一个类中进行. 2)子类无法重载父类的函数,父类同名函数将被名称覆盖 3)重载是在编译期间根据参数类型和个数决定函数调用 2.函数重写 1)必须发生于父类与子类之间 2)并且 ...

  4. java代理模式实例讲解

    下面这个是设计模式课上的例子: import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import ...

  5. java 方法的重载重写

    面向对象有三大特性:封装,继承,多态 多态则需要满足三大条件1要有继承2要有重写3父类引用子类对象 很多人对方法的重载重写有很大疑问,下面我来介绍一下方法的重载重写 方法重载就是方法名称重复,加载参数 ...

  6. [Java]重载,重写以及继承,多态的区别

    转自:http://android.blog.51cto.com/268543/53181 什么是多态?它的实现机制是什么呢?重载和重写的区别在那里?这就是这一次我们要回顾的四个十分重要的概念:继承. ...

  7. spring-AOP-ProxyFactoryBean代理的实例

    1.一个代理模式的实例 通过 Proxy类进行代理 wait.java //定义一个接口 public interface wait { void say(); } //目标对象实现接口并重写方法 p ...

  8. 一个简单JDK动态代理的实例

    动态代理的步骤: 创建一个实现了InvocationHandler接口的类,必须重写接口里的invoke()方法. 创建被代理的类和接口 通过Proxy的静态方法 newProxyInsatance( ...

  9. 一个简单 JDK 动态代理的实例

    动态代理的步骤: 创建一个实现了 InvocationHandler 接口的类,必须重写接口里的 invoke()方法. 创建被代理的类和接口 通过 Proxy 的静态方法 newProxyInsat ...

随机推荐

  1. Mac -- pkg-config: exec: "pkg-config": executable file not found in $PATH

    just run: brew install pkg-config

  2. Django 测试开发4 Django 模板和分页器

    Django结合前端框架Bootstrap来开发web页面.pip install django-bootstrap3 在setting.py添加‘bootstrap3’. 继承模板. 在base页面 ...

  3. CRF 初步了解

    国外有一个很著名的条件随机场的教程,是英文的,原文: http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields ...

  4. CPU | 物理 CPU vs 逻辑 CPU vs 核心 vs 线程 vs Socket

    当我们试着通过 Linux 命令 nproc 和 lscpu 了解一台计算机 CPU 级的架构和性能时,我们总会发现无法正确地理解相应的结果,因为我们会被好几个术语搞混淆:物理 CPU.逻辑 CPU. ...

  5. Dataeye计算任务架构

    https://mp.weixin.qq.com/s/9Q5-oU3bPIBieScwzrawDg 资源消耗降低2/3,Flink在唯品会实时平台的应用(有彩蛋) 王新春 DBAplus社群 2018 ...

  6. 34 Flutter仿京东商城项目 用户注册 注册流程 POST发送验证码 倒计时功能 验证验证码

    加群452892873 下载对应34课文件,运行方法,建好项目,直接替换lib目录 以下列出的是本课涉及的文件. RegisterFirst.dart import 'package:flutter/ ...

  7. Django之model补充:一对多、跨表操作

    表结构概述 model.py : class Something(models.Model): name = models.CharField(max_length=32) class UserTyp ...

  8. Spring Cloud(7.1):安装Kafka和Redis

    Kafka安装 (1)从官方(http://kafka.apache.org/downloads)下载安装包.kafka安装包和一般安装包的命名方式不一样,我们看一个kafka包命名:kafka_2. ...

  9. macpro锁屏后没有进入睡眠

    使用命令pmset -g查看,如图,钉钉阻止了屏幕的睡眠,找了下钉钉的配置,也没有发现有关的内容,重启钉钉后问题解决 displaysleep 10 (display sleep prevented ...

  10. 【数据库开发】Redis key-value内存数据库介绍

    Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案.Redis官方网网站是:http://www.redis.io/,如下: Redis 有 ...