C# 重载,重写,代理,枚举实例
1.日期说法时区不同所取到的值也不同, 多个国的服务器要注意这个玩意
- DateTime newDate = DateTime.Now;
- Console.WriteLine(newDate.ToString());
- Console.WriteLine(newDate.ToString(CultureInfo.InstalledUICulture));//根据当前操作系统,时区选择
- Console.WriteLine(newDate.ToString("", CultureInfo.InvariantCulture));
2.代理方法, 参数函数化 , 哦原来这就是代理呀!
- class Program
- {
- Main方法
- static void Main(string[] args)
- {
- @Class3 obj1 = new Class3();
- var num1 = ;
- var num2 = ;
- var str = obj1.subFun(delegate (int aa)
- {
- return num1 + num2 + aa;
- });
- Console.WriteLine(str);
- }
- }
- public class @Class3
- {
- public string subFun(Func<int, int> funcName)
- {
- var aa = ;
- int cc = funcName(aa);
- return cc.ToString();
- }
- }
3.重写 重载 区别 重写什么类型,就走那个类的重写方法
- class Program
- {
- Main方法
- static void Main(string[] args)
- {
- /**
- * 重载 同类/子类中 override 同名不同参
- * 重写 同类/子类中 new 同名同参
- * 利用反射 可反射出父类子实现对象中子类中的 属性,方法
- * **/
- @Class1 obj = new @Class1();
- obj.overrideFunc("@Class1");
- obj.overrideFunc("", "");
- Console.WriteLine(obj.message);
- @Class2 obj1 = new @Class2();
- obj1.overrideFunc("@Class2");
- obj1.overrideFunc("", "");
- obj1.overrideFunc("", "", "");
- Console.WriteLine(obj1.message1);
- @Class1 obj2 = new @Class2();
- obj2.overrideFunc("@Class1:@Class2");
- obj2.overrideFunc("", "");
- Console.WriteLine(obj2.message);
- Console.WriteLine(JsonConvert.SerializeObject(obj2));
- Type typeObj = obj2.GetType();
- PropertyInfo proObj = typeObj.GetProperty("message1");
- Console.WriteLine(proObj.GetValue(obj2));
- }
- }
- public class @Class1
- {
- public string message { get; set; } = "@Class1";
- public void overrideFunc(string message)
- {
- Console.WriteLine(message);
- }
- public void overrideFunc(string message, string message2)
- {
- Console.WriteLine($"{message},{message2}我是被@Class1重载的");
- }
- }
- public class @Class2 : @Class1
- {
- public string message1 { get; set; } = "@Class2";
- public new void overrideFunc(string message)
- {
- Console.WriteLine($"{message}我被重写过");
- }
- public void overrideFunc(string message, string message1, string message2)
- {
- Console.WriteLine($"{message},{message2},{message2}我是被@Class2重载的");
- }
- }
4.枚举 使用 其实需要一个扩展方法,来 名称转值,值转名称的
- EnumType enumObj = EnumType.类型1;
- Console.WriteLine(EnumType.类型1);
- Console.WriteLine((int)Enum.Parse(typeof(EnumType), "类型1", true));
C# 重载,重写,代理,枚举实例的更多相关文章
- java的多态以及重载,重写,前期绑定,后期绑定
多态的定义: 一个类实例的相同方法在不同情形有不同表现形式.多态机制使具有不同内部结构的对象可以共享相同的外部接口.这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通 ...
- Java重载重写与实现方法的规则
这几天在实训过程中做到了一个题,这个题目问的是 非抽象类实现接口后,必须实现接口中的所有抽象方法,除了abstract外,方法头必须完全一致.这句话是错误的.然后在做错以后自己总结一下重载 重写 和实 ...
- 重载重写重定义-易混淆概念-C++编译器处理方式
1.函数重载 1)必须在同一个类中进行. 2)子类无法重载父类的函数,父类同名函数将被名称覆盖 3)重载是在编译期间根据参数类型和个数决定函数调用 2.函数重写 1)必须发生于父类与子类之间 2)并且 ...
- java代理模式实例讲解
下面这个是设计模式课上的例子: import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import ...
- java 方法的重载重写
面向对象有三大特性:封装,继承,多态 多态则需要满足三大条件1要有继承2要有重写3父类引用子类对象 很多人对方法的重载重写有很大疑问,下面我来介绍一下方法的重载重写 方法重载就是方法名称重复,加载参数 ...
- [Java]重载,重写以及继承,多态的区别
转自:http://android.blog.51cto.com/268543/53181 什么是多态?它的实现机制是什么呢?重载和重写的区别在那里?这就是这一次我们要回顾的四个十分重要的概念:继承. ...
- spring-AOP-ProxyFactoryBean代理的实例
1.一个代理模式的实例 通过 Proxy类进行代理 wait.java //定义一个接口 public interface wait { void say(); } //目标对象实现接口并重写方法 p ...
- 一个简单JDK动态代理的实例
动态代理的步骤: 创建一个实现了InvocationHandler接口的类,必须重写接口里的invoke()方法. 创建被代理的类和接口 通过Proxy的静态方法 newProxyInsatance( ...
- 一个简单 JDK 动态代理的实例
动态代理的步骤: 创建一个实现了 InvocationHandler 接口的类,必须重写接口里的 invoke()方法. 创建被代理的类和接口 通过 Proxy 的静态方法 newProxyInsat ...
随机推荐
- Mac -- pkg-config: exec: "pkg-config": executable file not found in $PATH
just run: brew install pkg-config
- Django 测试开发4 Django 模板和分页器
Django结合前端框架Bootstrap来开发web页面.pip install django-bootstrap3 在setting.py添加‘bootstrap3’. 继承模板. 在base页面 ...
- CRF 初步了解
国外有一个很著名的条件随机场的教程,是英文的,原文: http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields ...
- CPU | 物理 CPU vs 逻辑 CPU vs 核心 vs 线程 vs Socket
当我们试着通过 Linux 命令 nproc 和 lscpu 了解一台计算机 CPU 级的架构和性能时,我们总会发现无法正确地理解相应的结果,因为我们会被好几个术语搞混淆:物理 CPU.逻辑 CPU. ...
- Dataeye计算任务架构
https://mp.weixin.qq.com/s/9Q5-oU3bPIBieScwzrawDg 资源消耗降低2/3,Flink在唯品会实时平台的应用(有彩蛋) 王新春 DBAplus社群 2018 ...
- 34 Flutter仿京东商城项目 用户注册 注册流程 POST发送验证码 倒计时功能 验证验证码
加群452892873 下载对应34课文件,运行方法,建好项目,直接替换lib目录 以下列出的是本课涉及的文件. RegisterFirst.dart import 'package:flutter/ ...
- Django之model补充:一对多、跨表操作
表结构概述 model.py : class Something(models.Model): name = models.CharField(max_length=32) class UserTyp ...
- Spring Cloud(7.1):安装Kafka和Redis
Kafka安装 (1)从官方(http://kafka.apache.org/downloads)下载安装包.kafka安装包和一般安装包的命名方式不一样,我们看一个kafka包命名:kafka_2. ...
- macpro锁屏后没有进入睡眠
使用命令pmset -g查看,如图,钉钉阻止了屏幕的睡眠,找了下钉钉的配置,也没有发现有关的内容,重启钉钉后问题解决 displaysleep 10 (display sleep prevented ...
- 【数据库开发】Redis key-value内存数据库介绍
Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案.Redis官方网网站是:http://www.redis.io/,如下: Redis 有 ...