title author date CreateTime categories
使用 Resharper 快速做适配器
lindexi
2018-08-10 19:16:51 +0800
2018-2-13 17:23:3 +0800
Resharper

如果需要做一个类的重写,需要重新写这个类的所有属性和函数,本文提供一个简单的方法让大家快速重写一个类的所有属性和函数。

在有 Resharper 之后,对一个比较长的类进行重构。例如有这个类

   class Foo
{
public string F1 { get; set; } public void F2()
{ }
}

来写出这个类

    class Foo1
{
private Foo _foo; public Foo1(Foo fooImplementation)
{
_foo = fooImplementation;
} public string F1
{
get { return _foo.F1; }
set { _foo.F1 = value; }
} public void F2()
{
_foo.F2();
}
}

难道需要自己全部写一遍?实际上可以使用这个方法来快速写。

使用 ctrl+shift+R 把 Foo 弄出一个接口

可以看到接口

    internal interface IFoo
{
string F1 { get; set; }
void F2();
}

写另外的类继承这个接口

   class Foo1 : IFoo
{
private IFoo _foo; public Foo1(IFoo foo)
{
_foo = foo;
}
}

在这个类按 alt+insert 可以看到 Delegating Members ,点击

这样就可以拿到这个类的所有属性和函数

    class Foo1 : IFoo
{
public void F2()
{
_foo.F2();
} private IFoo _foo; public Foo1(IFoo foo)
{
_foo = foo;
} public string F1
{
get => _foo.F1;
set => _foo.F1 = value;
}
}

如果需要复制一个类,可以使用 ctrl+shift+R 点击 Copy Type

复制一个类可以复制静态属性、方法,拿到类的接口不能获得静态的属性方法。

2018-8-10-使用-Resharper-快速做适配器的更多相关文章

  1. 使用 Resharper 快速做适配器

    如果需要做一个类的重写,需要重新写这个类的所有属性和函数,本文提供一个简单的方法让大家快速重写一个类的所有属性和函数. 在有 Resharper 之后,对一个比较长的类进行重构.例如有这个类 clas ...

  2. C# 谁改了我的代码 使用 Resharper 快速做适配器

    C# 谁改了我的代码   本文告诉大家一个特殊的做法,可以修改一个字符串常量 我们来写一个简单的程序,把一个常量字符串输出 private const string str = "linde ...

  3. 01 mybatis框架整体概况(2018.7.10)-

    01 mybatis框架整体概况(2018.7.10)- F:\廖雪峰 JavaEE 企业级分布式高级架构师课程\廖雪峰JavaEE一期\第一课(2018.7.10) maven用的是3.39的版本 ...

  4. 申请Office 365一年免费的开发者账号攻略(2018年10月份版本)

    要进行Office 365开发,当然需要有完整的Office 365环境才可以.为了便于广大开发人员快速地启动这项工作,微软官方给所有开发人员提供了免费的一年开发者账号   那么如何申请Office ...

  5. 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H)

    目录 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛链接 竞赛题目 总结 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛 ...

  6. Burn Down Chart(2018.6.4~2018.6.10)

    Burn Down Chart (2018.6.4~2018.6.10) 娄雨禛[前端部分] 曾子轩[后端部分+燃尽图] 前端 1. 娄雨禛+李鑫 1)在总工程中完成跳转,实现图片显示,并发布到Git ...

  7. Windows 10用户可以快速移除U盘

    新浪科技讯,北京时间 4 月 9 日上午消息,据美国科技媒体 The Verge 报道,微软再次证实,从 1809 版本的 Windows 10 开始,插入新闪存盘时“快速移除”(quick remo ...

  8. 2019牛客暑期多校训练营(第五场)B:generator 1 (10进制快速幂)

    题意:给定x0,x1,a,b,满足xi=a*xi-1+b*xi-2: 求xn,n<10^(10^6): 思路:10进制快速幂裸题.降幂来写好像也是可以的,但是循环节不是phi(mod),所以数学 ...

  9. IntelliJ IDEA 最新激活码(截止到2018年10月14日)

    IntelliJ IDEA 注册码: EB101IWSWD-eyJsaWNlbnNlSWQiOiJFQjEwMUlXU1dEIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYX ...

  10. 新手C#SQL Server使用记录2018.08.10

    主键(PrimaryKey):主键就是每个数据行(记录)的唯一标识,不会有重复值的列(字段)才能当做主键.一个表可以没有主键,但是这样会很难处理表,因此一般情况表都要设置主键. 主键有两张选用策略,分 ...

随机推荐

  1. 无人不识又无人不迷糊的this

    本文分享自华为云社区<3月阅读周·你不知道的JavaScript | 无人不识又无人不迷糊的this>,作者: 叶一一. 关于this this关键字是JavaScript中最复杂的机制之 ...

  2. Linux服务器部署Web版VSCode,在window下使用浏览器在linux环境下编写代码

    最近尝试了一下在Linux服务器上部署VSCode,也就是code-server,然后在windows电脑上通过浏览器访问打开在线编辑器编写代码,以下记录一下部署过程. 1.在linux服务器上安装c ...

  3. MySQL备份还原工具

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  4. FPGA的PCB设计

    FPGA的PCB设计 一.FPGA的高速电路板设计 PCB板的设计规模增大,IO传输问题也就出现.为了兼容其他高速模块,必须对PCB的设计进行优化. 1️⃣电源滤波,降低系统噪声2️⃣匹配信号线3️⃣ ...

  5. KingbaseES V8R6 运维案例 -- sys_filenode.map故障案例

    ​ 案例说明: 数据库下的sys_filenode.map文件被破坏,导致此数据库无法连接访问. Nail表(内核系统表)Relfilenode的存储机制: 经过研究发现,在数据目录里存在着pg_fi ...

  6. Java生成Json字符串

    public class Test01 { public static void main(String[] args) { // StringBuilder responseMsg = new St ...

  7. Java面试题【1】

    Java面试题总结 2022-05-20 1)Java有没有goto? goto是C语言中的,通常与条件语句配合使用,可用来实现条件转移, 构成循环,跳出循环体等功能.Java保留了这个关键字但是没有 ...

  8. #双指针#洛谷 7521 [省选联考 2021 B 卷] 取模

    题目传送门 分析 将 \(a\) 排序后从大到小枚举 \(a_k\),注意枚举的时候重复的只考虑一次,那么可以将其它数按照模 \(a_k\) 后排序, 答案只可能来自最大值与次大值之和取模或者之和最接 ...

  9. #树状数组,线段树,离散#JZOJ 3854 分组

    题目 Bsny所在的精灵社区有\(n\)个居民,每个居民有一定的地位和年龄,\(r_i\)表示第\(i\)个人的地位,\(a_i\)表示第\(i\)个人的年龄. 最近社区里要举行活动,要求几个人分成一 ...

  10. DOM 节点遍历:掌握遍历 XML文档结构和内容的技巧

    遍历是指通过或遍历节点树 遍历节点树 通常,您想要循环一个 XML 文档,例如:当您想要提取每个元素的值时. 这被称为"遍历节点树". 下面的示例循环遍历所有 <book&g ...