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 ...
随机推荐
- fdisk交互
fdisk交互 命令 说明 指令 a 设置可引导标记 toggle a bootable flag b 编辑bsd磁盘标签 edit bsd disklabel c 设置DOS操作系统兼容标记 tog ...
- SQL中AVG()、COUNT()、SUM()等函数对NULL值处理
一.AVG() 求平均值 注意AVE()忽略NULL值,而不是将其作为“0”参与计算 二.COUNT() 两种用法 1.COUNT(*) 对表中行数进行计数 不管是否有NULL 2.COUNT(字段名 ...
- arcgis python 更新日期为随机数
#coding:UTF-8 import time import random import re # 根据时间返回,返回随机年月日时间 def getRandomDate(sYear, sMonth ...
- arcgis python 布局中所有元素信息报告
# Author: ESRI # Date: July 5, 2010 # Version: ArcGIS 10.0 # Purpose: This script generates a report ...
- pytorch基础学习(二)
在神经网络训练时,还涉及到一些tricks,如网络权重的初始化方法,优化器种类(权重更新),图片预处理等,继续填坑. 1. 神经网络初始化(Network Initialization ) 1.1 初 ...
- 004-nginx简介、安装配置【源码安装和mac安装】、基本使用
一.概述 1.1.Nginx是什么 Nginx是一款轻量级的Web服务器,也是一款轻量级的反向代理服务器[常用]. 1.2.Nginx能干什么 Nginx能干的事情很多,这里简要罗列一些: 1:直接支 ...
- CerntOS7下搭建git服务器
(1).安装git yum安装git,需要ssh的支持.某些版本需要安装git-core,那才是服务器. [root@youxi1 ~]# yum -y install git 创建git用户 [ro ...
- python基础之面向对象(二)
一点提醒 首先在使用pickle读取load时,需要先把使用到的类import上,否则会报错.在pycharm中使用时不会报错,但在linux或者cmd时就会报错!必须import. 报错提示: Fi ...
- tcpdump抓包代码
tcpdump - tcp[:]=:]=0x4854 or tcp 抓出来的包可以导入wireshark分析 以上代码曾经在ios越狱机器上使用,用于抓包,具体也记不起来了 导入wireshark效果
- 蒙特卡罗方法计算pi
import scala.math.random object LocalPi { def main(args: Array[String]) { var count = 0 for (i <- ...