使用 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
复制一个类可以复制静态属性、方法,拿到类的接口不能获得静态的属性方法。
同时欢迎大家访问我搭建的博客 使用 Resharper 快速做适配器 我自己搭建的博客会不断更新
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
使用 Resharper 快速做适配器的更多相关文章
- C# 谁改了我的代码 使用 Resharper 快速做适配器
C# 谁改了我的代码 本文告诉大家一个特殊的做法,可以修改一个字符串常量 我们来写一个简单的程序,把一个常量字符串输出 private const string str = "linde ...
- 如何用Mockplus快速做一个手风琴菜单?
手风琴菜单是一种比较常用的菜单形式,利用原型工具来做这种菜单通常要用到中继器.即使是功能强大的Axure,想实现该效果也比较麻烦.但如果你对Mockplus有所了解,你一定知道,利用Mockplus的 ...
- 【Android】以BaseAdapter做适配器的ListView及其性能优化
适配器的Java类 package com.app.adapter; import org.json.JSONArray; import org.json.JSONObject; import and ...
- 【Android】以SimpleAdapter做适配器的ListView和GridView
SimpleAdapter介绍 SimpleAdapter是一个简单的适配器,可以将静态数据映射到XML文件中定义好的视图. 构造函数 public SimpleAdapter (Context co ...
- ASP.NET Web API + Elasticsearch 6.x 快速做个全文搜索
最近想做个全文搜索,设想用 ASP.NET Web API + Elasticsearch 6.x 来实现. 网上搜了下 Elasticsearch 的资料,大部分是讲 linux 平台下如何用 ja ...
- 快速做ssh免密钥登陆
1.本地生成密钥并发送目标主机 >&1 #采用数字签名RSA或DSA生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub ssh-copy-id ...
- 用KendoGrid控件 快速做CRUD
先看效果: 主要引用的文件: <link href="/css/kendo/2014.1.318/kendo.common.min.css" rel="styles ...
- dotnet 从入门到放弃的 500 篇文章合集
本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到 ...
- 2018-8-10-dotnet-从入门到放弃的-500-篇文章合集
title author date CreateTime categories dotnet 从入门到放弃的 500 篇文章合集 lindexi 2018-08-10 19:16:52 +0800 2 ...
随机推荐
- springBoot拦截器的使用
拦截器是动态拦截Action调用的对象.它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行.同时也是提供了一种可以提取action中可 ...
- ELK-WEB中文汉化和安全认证
1.Kibana汉化方法此项目,适用于Kibana 5.x-6.x的任意版本,汉化过程不可逆 1)Github仓库下载kibana中文汉化包,下载指令如下: git clone https://git ...
- servlet3.1
Servlet3.1新增的新特性强制更改sessionId 由HttpServletRequest 的changeSessionId()方法实现 非阻塞式IO 非阻塞式IO我们应该知道Servlet底 ...
- 从零开始搭建自己的VueJS2.0+ElementUI单页面网站(一、环境搭建)
原网址:https://blog.csdn.net/u012907049/article/details/72764151 前言 VueJS可以说是近些年来最火的前端框架之一,越来越多的网站开始使用v ...
- netstat 常用参数总结
netstat 是一个机器网络查看工具 . 网络连接有哪些参数?
- Linux查看某个端口的连接数
一.查看哪些IP连接本机 netstat -an 二.查看TCP连接数 1)统计80端口连接数 netstat -nat | grep -i "80" | wc -l 2)统计ht ...
- 深入浅出PF 学习笔记---通过资源文件设置按钮的Style及通过x:null设置不受Style影响
<Window x:Class="WpfStudy2018.StyleButton" xmlns="http://schemas.microsoft.com/win ...
- 二十、Flyweight 享元模式
原理: 代码清单: BigChar public class BigChar { //字符名称 private char charname; //大型字符 # . \n 组成 private Stri ...
- django 模板使用
1 配置 在工程中创建模板目录templates. 在settings.py配置文件中修改TEMPLATES配置项的DIRS值: TEMPLATES = [ { 'BACKEND': 'django. ...
- DBHelper类
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import ja ...