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# 重载,重写,代理,枚举实例的更多相关文章

  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. Linux如何使用shell命令检测PHP木马防止脚本木马的破坏

    1.一句话查找PHP木马 代码如下 # find / -name "*.php" |xargs egrep "phpspy|c99sh|milw0rm|eval\(gun ...

  2. ISO/IEC 9899:2011 条款6.4.9——注释

    6.4.9 注释 1.除了在一个字符常量.一个字符串字面量.或一个注释内,字符 /* 引入一个注释.这么一个注释的内容被检查仅用于标识多字节字符,并且要找到 */ 来终结.[注:从而,/* ... * ...

  3. mysql插入数据时 insert IGNORE、ON DUPLICATE KEY UPDATE、replace into

    转: mysql insert时几个操作DELAYED .IGNORE.ON DUPLICATE KEY UPDATE的区别 博客分类: mysql基础应用   mysql insert时几个操作DE ...

  4. Linux MySql状态、启动、停止、重启命令

    1.查看mysql状态 [1]ps -ef|grep mysqld 看看是否有mysqld_safe 和mysqld进程 [root@localhost ~]# ps -ef|grep mysqld ...

  5. CentOS7下搭建zabbix监控(一)——Zabbix监控端配置

    zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位 ...

  6. PAT 甲级 1035 Password (20 分)(简单题)

    1035 Password (20 分)   To prepare for PAT, the judge sometimes has to generate random passwords for ...

  7. Swift学习 (三)

    3.函数: 在Swift中函数的定义基本与OC一样. 主要区别为: 通过func关键词定义函数 返回值在->关键词后标注 各举一个类方法与实例方法例子. 1 2 + (UIColor*)blac ...

  8. 【Leetcode_easy】724. Find Pivot Index

    problem 724. Find Pivot Index 题意:先求出数组的总和,然后维护一个当前数组之和curSum,然后对于遍历到的位置,用总和减去当前数字,看得到的结果是否是curSum的两倍 ...

  9. 【Leetcode_easy】700. Search in a Binary Search Tree

    problem 700. Search in a Binary Search Tree 参考1. Leetcode_easy_700. Search in a Binary Search Tree; ...

  10. iOS——使用FMDB进行数据库操作(转载)

    iOS 使用FMDB进行数据库操作 https://github.com/ccgus/fmdb [摘要]本文介绍iOS 使用FMDB进行数据库操作,并提供详细的示例代码供参考. FMDB 使用方法 A ...