.NET代码复用

C# 泛型:类型安全与代码复用 在 C# 中,泛型是一种机制,允许你定义方法、属性、索引器、委托、事件和类型,这些类型可以在编译时指定具体的类型参数。这样,你就可以创建一个通用的解决方案,这个解决方案可以适用于多种不同的数据类型。通过这篇俏皮可爱的指南,我们不仅了解了如何使用 C# 泛型来编写类型安全且高度可重用的代码,还学习了如何创建泛型类、泛型方法、泛型接口,以及如何约束类型参数。现在,你可以尝试在自己的项目中实践这些知识,让你的代码更加高效和灵活!如果你有任何疑问或者想要深入了解某个主题,请随时告诉我! 阅读详情
 

.NET这一区首先要讲的就是代码的复用问题,这一点上.NET的代码复用我觉得远没有JAVA做的好。这是.NET给我的第一个打击。

 

使用很长一段时间的JAVA,觉得基于包的代码管理策略给我们带来了诸多的好处,代码的复用异常方便,要使用别人提供的代码,只要将包置于搜索目录下面,然后在使用的文件中显式的导入包就可以使用别人的代码了。这一点也是为什么JAVA为什么如此受欢迎的原因吧。

 

.NET的代码复用策略也许多多稍稍还受着C++的影响,它采用到了STANDARD C里面的命名空间的机制,本来这机制很类似JAVA的包策略的,但是在物理层次的组织上却没有JAVA的那种目录结构组织,因此在寻找可以复用的源文件代码的时候,总是会碰到这样那样的困难。

 

具体的例子是这样的:我在做一个网络蜘蛛的时候,要用到一个C#的HTML解析器,在CODE PROJECT上面刚好有这样的一个项目,于是乎我找到了那个项目,并且下载了所有的代码。然而这些代码的组织一看就让我傻眼了,我根本无法得知,这些文件之间的相互依赖关系,也不知道哪些是我需要的,哪些是我不需要的,然后就打开文件看具体的代码,找出一个文件,复制到我的工程目录下,使用,编译,然后错误就产生了,XXX文件找不到了,XXX类找不到了,然而也没有发现这些类在代码头里面声明被使用

 

刚开始的时候还一直坚定的认为是我经验不够,不知道怎么操作,然后发帖求助,大家的做法与我也基本一致。

 

这一点上希望在未来的版本里面能够有所突破

---------------------------------------------------------------------------------------------------------------------------------------------------

 

本文的观点介属本人愚见,如有谬误,欢迎指教。

Email:zinking3@gmail.com

欢迎您的指教

 

11、代码重构、复用与设计模式在 .NET 8 中的应用 本文探讨了代码重构、复用与设计模式在 .NET 8 中的应用。内容涵盖代码重构的好处与步骤、代码复用的推广与文档化方法、设计模式的重要性与类型,以及几种常见设计模式的示例代码和使用场景。同时分析了设计模式与软件架构的关系,并总结了重构、复用和设计模式在软件开发中的重要作用。 阅读详情

相关推荐

24、C 8 代码复用与 .NET Core 面向服务架构实践

本文探讨了C# 8中代码复用的技术方法以及如何在.NET Core中实践面向服务架构(SOA)。文章详细分析了代码复用的关键问题,如复制粘贴的弊端、面向对象和泛型的作用,并深入介绍了SOA的核心原则、通信栈选择以及SOAP和REST两种服务通信方式的优缺点。此外,文章还讨论了代码复用与SOA的协同作用、实施步骤、挑战与解决方案,以及未来发展趋势,如微服务和云原生技术的应用。通过这些内容,帮助开发者提高系统的可维护性、可扩展性和开发效率。

s8t9u0v1w的博客 82

C#中几种代码复用的方式

假如在项目中,有多个方法,他们的开头和结尾都是差不多的,不变的只是中间的那部分逻辑。比如:static void f1() { Console.WriteLine("begin"); Console.WriteLine("do something1!"); Console.WriteLine("end"...

weixin_34085658的博客 761

10、C 12 中实现代码复用的全面指南

本文全面探讨了在 C# 12 和 .NET 8 环境中实现代码复用的多种方法与最佳实践。从代码复用的基本概念入手,分析了其优势与常见误区,并深入讲解了如何通过面向对象分析、泛型、类库创建等技术实现高效复用。此外,文章还涵盖了重构策略、注意事项及实际案例,帮助开发者提升代码质量和开发效率。

c7d8e的博客 135

C#反射使用场景之提高代码复用率

最近做项目时,用到了一点反射处理,下面简单聊一下什么是反射,及反射的使用场景,场景很重要,没有场景,很难深入了解一个技术点。反射是什么,这种在我看来比较高大上的概念就先不聊了,大家在网上搜索一下也很多,我们直接按照需求走一遍。 在ORM处理里,也就是数据库和Model关联时,假设Student表里有StudentID,SName,SClass字段,对应一个StuModel,具备同样的字段,我们怎...

songjian1104的专栏 785

vb.net可重用组件开发全程代码

vb.net的资源网上少得可怜,连微软的教程也流于简单的hello.可重用组件开发从开发的整个流程出发,把多层开发的各个环节都很透彻地提到了。很有参考价值。

c# 导入Excel 委托 进度条 可复用

c# 导入 委托 进度条 可复用

c#使用委托 + 泛型,编写可复用代码

代码结构是一样的,就是中间不同,而且操作的数据类型也不同。委托特别适合于上下代码相同,唯独中间部分不同的情况,将函数通过参数传递方式传入,我谓之曰注入式开发。我是见不得重复代码的,尽管复用部分不多,也尽量将公共部分提取出来。还用到了委托和泛型,极尽奇淫技巧,写完还自鸣得意,觉得自己做一个程序员,肯定是够格的。重复代码其实也有好处,就是写的时候很快,复制粘贴,管它是否冗余,先搞出来,看到成果再说。不过,加入委托后,我感觉是代码可读性变差了。在修改旧项目的时候,发现代码有一些重复,于是做了一点修改。

左直拳的马桶_日用桶 434

面向对象之继承代码重用

在练习基本的OOP技术 (封装,继承,多态等) 上,书写一个字符串处理器(文本处理器) 要求: (1)显示文本菜单让用户选择创建不同的对象,如:矩形、正方形、圆、椭圆等 (2)如果用户选择矩形,提示用户输入矩形的中心点,高度和宽度; 其他形状类似,要求输入必要的定位和数据 (3)使用用户输入参数创建对应对象。

跨越代际的代码复用:.NET Framework项目集成.NET Core模块的实战策略

本文深入探讨了在.NET Framework项目中集成.NET Core模块的实战策略。针对无法直接项目引用的核心问题,文章提出了以.NET Standard类库作为核心桥梁的解决方案,并详细介绍了版本选择、代码兼容性编写技巧。同时,进阶方案探讨了多目标框架项目的灵活应用,并提供了CI/CD管道构建与常见调试问题的解决思路,助力开发者实现平稳的代际代码复用。

weixin_29224589的博客 227

深入浅出SSD:固态存储核心技术、原理与实战(文末赠书)

作为经典畅销书的升级版,本书在第1版的基础上新增了大量新知识(如闪存、UFS、测试、文件系统等),并改写或删减了许多过时或不适用的内容,总修改量超过60%。本书由SSD技术社区SSDFans的核心团队成员联合业界、高校SSD方面的专家共同完成,相对于第1版,内容更全面、更新,也更有深度。本书从产品、技术和应用3个维度展开,全面、详细讲解了SSD的发展历史、产品形态、工作原理、整体架构,以及各个功能模块的原理和使用,从SSD的前端接口协议到FTL算法,再到后端的闪存和纠错,以及测试,本书都有涉及。

阿玥的小博客 3121

【无标题】EXCEL实现刷题

运用Excel开发的刷题工具,具有普遍实用性,可将WORD的试题自动导入并实现刷题。

weixin_44081794的博客 2970

跨越框架鸿沟:.NET Framework 项目如何巧妙复用 .NET Core 代码

本文详细探讨了如何在.NET Framework项目中高效复用.NET Core代码的四种实战方案,包括.NET Standard类库、NuGet私有包、进程间通信和渐进式迁移。通过具体案例和代码示例,帮助开发者解决跨框架代码复用的技术难题,提升项目升级效率与性能优化。

weixin_28335283的博客 152

解决Android 14兼容性问题:NDK中arm64-v8a的正确配置方法

本文详细解析Android 14系统架构变化对NDK开发的影响,重点介绍arm64-v8a架构的正确配置方法。针对常见的兼容性问题如so库缺失、ABI不匹配等提供解决方案,并分享性能优化与自动化测试实践,助力开发者高效适配Android 14设备。

algae的博客 1219

ASP.NET中实现复用代码自定义用户控件UserControl的使用

场景 ASP.NET中新建Web网站并部署到IIS上(详细图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/107199747 在上面博客中已经将网站部署到了IIS上。 但是如果网站很大,页面比较多,甚至每个页面都有不少公共的布局和重复的代码等。 可以使用自定义用户控件来解决。 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程.

317

Spark Sql 连接mysql

转载请务必注明原创地址为:http://dongkelun.com/2018/03/21/sparkMysql/ 1、基本概念和用法(摘自spark官方文档中文版) Spark SQL 还有一个能够使用 JDBC 从其他数据库读取数据的数据源。当使用 JDBC 访问其它数据库时,应该首选 JdbcRDD。这是因为结果是以数据框(DataFrame)返回的,且这样 Spark SQL操作轻松或便......

主要分享大数据相关的知识,如Spark、Hudi 1万+

CloudCompare 二次开发(36)——非均匀体素降采样

使用CloudCompare与PCL编程实现的非均匀体素降采样。

点云侠的博客 743

使用基于Roslyn的编译时AOP框架来解决.NET项目的代码复用问题

介绍如何通过使用基于Roslyn的编译时AOP框架来解决.NET项目的代码复用问题。 可以在项目编译时自动插入指定代码,从而避免在运行时带来的性能消耗。 阅读全文

重典的博客 775

EtherCAT主站SOEM -- 0 -- 该EtherCAT主站SOEM专栏后续安排

SOEM(Simple Open EtherCAT Master)是一个开源的EtherCAT主站库,允许开发者构建自定义的EtherCAT主站应用程序。EtherCAT是一种实时以太网通信协议,广泛应用于工业自动化和机器控制领域。开源性质:SOEM是一个开源项目,这意味着开发者可以自由地查看、修改和分发代码。这使其成为工业自动化领域的一个强大工具,可以根据具体需求进行定制。EtherCAT主站实现:SOEM库提供了一个完整的EtherCAT主站实现,允许主站与多个EtherCAT从站设备进行通信。

常驻客栈的博客--嵌入式EtherCAT 6658

asp.net mvc的代码重用

软件复用是一个巨大的主题。软件架构设计,很大的一个目的,其实也是为了复用。 软件复用,有三方面可以进行: 需求复用 架构复用 代码复用 前面两个太宏大了,现在只来总结下第三个,asp.net mvc的代码复用。 asp.net mvc的代码复用,我认为有以下几个方面可以进行: 1、框架 包括数据库ORM框架,前端JS框架,整套项目框架,等等,不赘述 2、公用类库、公共函数 不赘述 3、部件 H...

左直拳的马桶_日用桶 1342

3D高斯压缩黑科技开源!1GB场景压到42MB,Web3D迎来“WebP时刻”——SOG格式深度解析

Web3D迎来革命性突破!PlayCanvas开源全新3D高斯泼溅压缩格式SOG,将1GB场景压缩至仅42MB,体积缩小95%,加载速度提升10倍+。SOG通过将3D数据编码为WebP纹理+元数据,实现GPU零拷贝实时渲染,完美兼容WebGL/WebGPU。实测显示,4百万高斯点的场景在手机上1.5秒内完成加载,内存占用降低83%。这一技术突破为电商展示、虚拟旅游、工业设计等领域带来新机遇,开发者可通过开源工具链快速集成。SOG被誉为"3D界的WebP",有望成为下一代3D互联网的基础设

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 861

ESP32学习笔记03-日志打印

日志分为5个等级。

Car12 1413

从VS 2005提供Code Snippets功能看代码复用

首先说明这里的代码复用指的是狭义的源代码的复用,而不是广义的黑盒复用和白合复用所指的代码复用,所以文中所说的代码复用都默认都是指前者所指的源代码的复用。 我们知道在程序设计中复用代码并不是一件容易的事情,其实每段代码的编写,都是通过一定的思考的,当然考虑的程度与其解决的问题的难度有关。我们很忌讳在一个工程中重复使用相同的源代码,如果出现这样的情况很多时候就是程序结构设计本身的不合理...

weixin_33692284的博客 91

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

NET Core跨平台的奥秘[中篇]:复用之殇

包含在元数据中针对外部程序集的描述是由编译时引用的程序集决定的,引用程序集的名称(包含文件名、版本和签名的公钥令牌)会直接体现在当前程序集的元数据中。针对程序集引用的元数据采用如下的形式(“.assembly extern”)被记录在清单文件中,我们可以看出被记录下来的不仅包含被引用的程序集文件名(“Foo”和“Bar”),还包括程序集的版本,对于签名的程序集(“Foo”)来说,公钥令牌也一并包含其中。源代码的共享通过在不同项目之间共享源文件的方式来实现,至于具体采用的方式,我们有三种不同的方案供你选择。

okGoQqF8k的博客 219

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: 序
下一篇: ECLIPSE插件管理脚本
zinking3
博客等级 码龄20年 262粉丝 215原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值