xml地图|网站地图|网站标签 [设为首页] [加入收藏]
修饰符的用法,NET开发资源大全
分类:编程

1. 类和结构能够实现接口

1. 只有C#内置类型(int,double,long等)可以声明为const;结果、类和数组不能声明为const。

2. 接口声明包含如下四种类型:属性、方法、事件和索引;这些函数声明不能包含任何实现代码,而在每一个成员的主体后必须使用分号

  1. readonly 是在字段上使用的修饰符,直接以类名.字段访问。

  2. const 必须在申明中初始化。之后不能再修改。

目录

3. 继承接口的类或结构必须实现接口中的所有成员

4. readonly可以在申明中初始化,也可以在构造函数中初始化,其它情况不能修改。

  • API
  • 应用框架(Application Frameworks)
  • 应用模板(Application Templates)
  • 人工智能(Artificial Intelligence)
  • 程序集处理(Assembly Manipulation)
  • 资源(Assets)
  • 认证和授权(Authentication and Authorization)
  • 自动构建(Build Automation)
  • 缓存(Caching)
  • CLI
  • CLR
  • CMS
  • 代码分析和度量(Code Analysis and Metrics)
  • 编译器(Compiler)
  • 压缩(Compression)
  • 持续集成(Continuous Integration)
  • 加密(Cryptography)
  • 数据库(Database)
  • 数据库驱动(Database Drivers)
  • 反编译(Decompilation)
  • 部署(Deployment)
  • DirectX
  • 分布式计算(Distributed Computing)
  • 文档(Documentation)
  • 电子商务和支付(E-Commerce and Payments)
  • 环境管理(Environment Management)
  • ETL
  • 游戏(Game)
  • 地理信息系统(Gis)
  • Git工具(Git Tools)
  • 图形(Graphics)
  • GUI
  • HTML 和 CSS(HTML and CSS)
  • HTTP
  • IDE
  • 图像处理(Image Processing)
  • 安装工具(Install Tools)
  • 国际化(Internationalization)
  • 澳门新葡亰手机版,互操作(Interoperability)
  • IoC
  • 日志(Logging)
  • 机器学习和数据科学(Machine Learning and Data Science)
  • Markdown 处理(Markdown Processors)
  • 邮件(Mail)
  • 数学(Mathematics)
  • 多媒体(Media)
  • 度量(Metrics)
  • 微框架(Micro Framework)
  • 杂项(Misc)
  • MVVM
  • Office
  • ORM
  • 包管理(Package Management)
  • PDF
  • Profiler
  • 推送通知(Push Notifications)
  • 队列(Queue)
  • 响应式编程(Reactive Programming)
  • 计划调度(Scheduling)
  • SDK 和 API 客户端(SDK and API Clients)
  • 搜索(Search)
  • 序列化(Serialization)
  • 状态机(State machines)
  • 静态网站生成(Static Site Generators)
  • 风格指南(Style Guide)
  • 模板引擎(Template Engine)
  • 测试(Testing)
  • 交易(Trading)
  • Visual Studio 插件(Visual Studio Plugins)
  • Web 框架(Web Frameworks)
  • Web 服务器(Web Servers)
  • WebSocket
  • Windows 服务(Windows Services)
  • 其他列表(Other Lists)
  • 更多资源
  • 微软官方开源
  • .NET开源基金项目
  • 园友补充
  1. 显示接口的实现注意下面的代码

    class Program

     {
         static void Main(string[] args)
         {
             SampleClass_1 sc = new SampleClass_1();
             IControl ctr1 = (IControl)sc;
             ISurface srfc = (ISurface)sc;
             // 调用一样的方法,继承
             sc.Paint();
             ctr1.Paint();
             srfc.Paint();
             Console.WriteLine();
    
             //显式接口实现
             SampleClass_2 obj = new SampleClass_2();
             IControl c = (IControl)obj;
             ISurface s = (ISurface)obj;
             obj.Paint();
             c.Paint();
             s.Paint();
    
             Console.ReadKey();
         }
     }
     public interface IControl // 接口可以有访问修饰符
     {
         void Paint();      //成员不允许有任何访问修饰符,默认public
         int P { get; }
     }
     public interface ISurface
     {
         void Paint();
     }
     class SampleClass_1:IControl,ISurface
     {
         //IControl.Paint和ISurface.Paint都会调用这个方法
         public void Paint()
         {
             Console.WriteLine("Paint method in SampleClass");
         }
         private int _value=10;
         public int P
         {
             get { return _value; }
             set { _value = value; }  //可以添加set访问器
         }
     }
     class SampleClass_2:IControl ,ISurface 
     {
         //显式接口实现
        void IControl.Paint()  //这时候不能加访问修饰符public, 要完全和接口定义一致
         {
             Console.WriteLine("IControl.Paint");
         }
         void ISurface.Paint()
         {
             Console.WriteLine("ISurface.Paint");
         }
         public void Paint()
         {
             Console.WriteLine("SampleClass_2.Paint");
         }
         private int _value=10;
         int IControl.P
         {
             get { return _value; }
             //set { }显式接口必须和接口定义完全一致,不能任意添加set访问器
         }
     }
    
namespace const_and_readonly
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Half a year have {0} Moths", Calendar.Moths/2); //直接类名.字段访问const字段
            Calendar test1 = new Calendar();
            Console.WriteLine("Every year has {0} weeks and {1} days", test1._weeks, test1._days);//readonly字段通过实例访问
            Calendar test2 = new Calendar(31, 4);
            Console.WriteLine("January has {0} weeks and {1} days", test2._weeks ,test2 ._days);
            Console.ReadKey();
        }
    }
    class Calendar
    {
        public const int Moths = 12;  //const必须在声明中初始化
        public  readonly int _days=365;   //readonly在声明中初始化
        public  readonly int _weeks;
        public Calendar()                   //readonly在构造函数内初始化
        {
            _weeks = 52;
        }
        public Calendar(int days,int weeks)  //readonly在构造函数内初始化
        {
            _days = days;
            _weeks = weeks;
        }
        public void setvalue(int days,int weeks)
        {
           // _days = days;  无法对只读字段赋值
            //_weeks = weeks; 无法对只读字段赋值
        }

    }

Awesome系列的.Net资源整理。awesome-dotnet是由quozd发起和维护。内容包括:编译器、压缩、应用框架、应用模板、加密、数据库、反编译、IDE、日志、风格指南等。

  

  

API

  • 框架WebAPI Contrib:帮助你提高 ASP.NET Web API 能力的开源项目集合。 官网
    • NancyFx:轻量、用于构建 HTTP 基础服务的非正式(low-ceremony)框架,基于.Net 及 Mono 平台。 官网
    • ASP.NET WebAPI:快捷创建 HTTP 服务的框架,可以广泛用于多种不同的客户端,包括浏览器和移动设备。 官网
    • ServiceStack:架构缜密、速度飞快、令人愉悦的 web 服务。 官网
    • Nelibur:Nelibur 是一个使用纯 WCF 构建的基于消息的 web 服务框架。Nelibur 可以便捷地创建高性能、基于消息的 web 服务,使得你全面拥有 WCF 的强大能力。 官网

应用框架(Application Frameworks)

  • ASP.NET Boilerplate:现代 ASP.NET MVC web 应用程序的入门,包含最佳实践和最流行的工具。 官网
  • Orleans:Orleans 框架提供了直接构建分布式、大规模计算应用的方法,无需学习和使用复杂的并行或扩展模型。 官网
  • CoreFX:corefx 仓库包含了 .NET 核心功能库的实现(被称为“CoreFX”)。包含了 System.Collections、System.IO、System.Xml 以及诸多其它组件。目前构建并运行于 Windows 平台。你可以关注这个仓库,了解在未来的几个月内即将增加的对 Linux 和 Mac 的支持。 官网
  • CSLA .NET:业务层开发框架 。 官网
  • Mono:Mono 是 ECMA CLI、C# 以及 .NET 的开源实现。 官网
  • Mono-Addins:Mono.Addins 是一个通用框架,用于创建可扩展的应用程序以及这些应用程序的扩展插件。 官网
  • Spring.Net:Spring.NET 是一个开源的应用程序框架,可以便捷地创建企业级 .NET 项目。 官网

应用模板(Application Templates)

  • MVC.Template:ASP.NET MVC 5 入门项目模板。 官网
  • ProjectScaffold:F# 基金会推荐的 .NET 解决方案的原型——包括文件系统的搭建、用于管理依赖的 Paket 以及用于自动化构建、测试的 FAKE。默认情况下,构建流程也会对文档进行编译,并生成 NuGet 程序包。 官网
  • Side-Waffle :包含大量有用的 Web 和桌面开发模板。 Side-Waffle
  • Template10 :带有设计模式的 Windows 10 模板。 Template10

人工智能(Artificial Intelligence)

  • AIMLBot(Program#):使用 C# 编写的一个小型、快速、兼容标准、易于定制的聊天机器人,基于 AIML (人工智能标记语言 Artificial Intelligence Markup Language)。 官网
  • SIML:智能综合智能标记语言(Synthetic Intelligence Markup Language),下一代聊天机器人及数字助手语言。 官网

程序集处理(Assembly Manipulation)

  • dnSpy:dnSpy 是一个 .NET 程序集编辑器、反编译器和调试器,来自 ILSpy 分支。 官网
  • Fody:织入(weaving).net 程序集的可扩展工具。 官网
  • Mono.Cecil:Cecil 类库用于生成和检查 ECMA CIL 程序和库。 官网

资源(Assets)

  • Cassette:管理 .NET web 应用程序资源(脚本、css 和 模板) Cassette
  • NodeAssets:.net 资源管理器,通过 SignalR 实时更新 css,也可以使用 NodeJS 编译器。 官网
  • Bundler:编译和最小化 Less、Sass、Stylus、Css、JS、CoffeeScript、LiveScript 文件。MVC集成了 MVC 和 ServiceStack。 官网
  • SquishIt:让你轻松合并一些 css 和 javascript。 官网

认证和授权(Authentication and Authorization)

  • ASP.NET Identity:用于 ASP.NET 应用程序的新身份系统。 官网
  • DotNetOpenAuth:OpenID、OAuth 和 InfoCard 协议的一个 C# 实现。 官网
  • Logibit Hawk:一个 F# Hawk 认证库。 官网
  • IdentityModel:.NET 4.5 和 MVC4、Web API 身份和访问控制的辅助库。 官网
  • IdentityServer:可扩展的 OAuth2 和 OpenID 连接提供程序框架。 官网
  • OAuth:超轻量级 OAuth 1.0a 签名生成库,C# 编写。 官网

自动构建(Build Automation)

  • Psake:基于 .NET 的自动化构建工具,使用 PowerShell 编写。 官网
  • FAKE:F# Make,一个跨平台自动构建系统。 官网
  • Invoke-Build:PowerShell 自动构建和测试工具,灵感来自 Psake。 官网
  • MSBuild:微软构建引擎(MSBuild)是 .NET 和 Visual Studio 的构建平台。 官网
  • Cake:Cake(C# Make)使用 C# DSL 的跨平台自动构建系统。 官网

缓存(Caching)

  • CacheCow:ASP.NET Web API HTTP 客户端和服务器端缓存实现。 官网
  • Akavache:一个异步、持久化的键值存储。 官网

CLI

  • Command Line Parser:Command Line Parser 类库为 CLR 应用程序提供了一套简洁的 API,用于处理命令行参数及相关任务。 官网
  • Fluent Command Line Parser:一个简单、强类型的 .NET C# 命令行解析库,交互方式流畅易用。 官网
  • Power Args:PowerArgs 将命令行参数转换为 .NET 对象,便于程序使用。它还提供了大量可选的扩展,例如参数校验、自动生成使用帮助、tab 补全等等。 官网
  • UnionArgParser:针对 F# 应用程序的声明式 CLI 参数和 XML 配置解析器。 官网

CLR

  • CoreCLR:coreclr repo 包含了完整的 .NET 核心运行时实现(称为“CoreCLR”)。它包括 RyuJIT、.NET GC、非托管代码交互(native interop)等诸多组件。它目前构建和运行于 Windows 平台。你可以关注这个仓库,了解未来的几个月内即将增加的对 Linux 和 Mac 的支持。 官网

CMS

  • Composite C1:一个 web 内容管理系统,着重在用户体验及适应性。 官网
  • mojoPortal:MojoPortal 是一个可扩展、跨数据库、移动友好的 web 内容管理系统(CMS)和 web 应用程序框架,使用 C# ASP.NET 编写。 官网
  • N2CMS:开源、轻量、代码优先的 CMS,可以无缝地集成到任何 MVC 项目中。 官网
  • Orchard:免费、开源、专注社区的项目,目标是在 ASP.NET 平台上提供应用程序和可重用组件。 官网
  • Piranha CMS:Piranha 是一个有趣、快速、轻量级的 .NET 框架,用于开发基于 cms 附带其它功能的 web 应用程序。它基于 ASP.NET MVC 和 Web 页面创建,完全兼容 Visual Studio 和 WebMatrix。 官网
  • Umbraco:Umbraco 是一个免费开源的内容管理系统,基于 ASP.NET 平台构建。 官网

代码分析和度量(Code Analysis and Metrics)

  • CodeMaid:Visual studio 扩展,用于清理、挖掘和简化 C#、C++、F#、VB、PHP、JSON、XAML、XML、ASP、HTML、CSS、LESS、SCSS、JavaScript 和 TypeScript 代码。 官网
  • StyleCop:StyleCop 使用一组风格和一致性规则,对 C# 源代码进行分析和强制性检查。 官网
  • Gendarme:可扩展的、基于规则的工具,用于在 .NET 应用程序和类库中查找问题。 官网
  • Metrics-Net:捕获 CLR 和应用程序级别的度量值。所以你知道它的功能。 官网

编译器(Compiler)

  • Bridge.NET:将 C# 编译成 JavaScript 的开源编译器 。 官网
  • ClojureCLR:从 Clojure 到 CLR 的转换,是 Clojure 项目的一部分。 官网
  • F#:F# 编译器、核心库和工具——更安全、更快、代码更好的函数式编程语言。 官网
  • FunScript:F# 到 JavaScript 的编译器,可以通过 TypeScript 类型提供程序使用 JQuery 等 JavaScript 库。 官网
  • JSIL:CIL 到 Javascript 的编译器 。 官网
  • Mono-basic:Visual Basic 编译器和运行时。 官网
  • Nemerle:Nemerle 是一个 .NET 平台高级静态类型编程语言。它提供函数式、面向对象式和命令式编程语言的特性。它拥有一个简单的类似 C# 的语法和强大的元编程(meta-programming)系统。 官网 Github
  • Netjs:.NET 到 TypeScript 和 JavaScript 编译器。兼容可移植类库。你甚至可以使用 EXE 文件。 官网
  • Roslyn:.NET 编译平台(“Roslyn”)提供开源的 C# 和 Visual Basic 编译器,包含丰富的代码分析 API。它可以使用和 Visual Studio 一样的 API 来构建代码分析工具。 官网
  • VisualFSharp:Visual F# 编译器和工具。 官网

压缩(Compression)

  • SharpCompress:SharpCompress 是一个用于 .NET、Mono、Silverlight、WP7 的压缩类库,可以解压rar、7zip、zip、tar、bzip2 和 gzip,提供单向读取和随机文件访问 API。支持对 zip/tar/bzip2/gzip 进行写入的实现。 官网
  • DotNetZip.Semverd:一个开源项目,提供对 ZIP 文件处理的 .NET 类库和相关工具。 (分支自 已经不再维护的 DotNetZip) DotNetZip.Semverd
  • SharpZipLib:一个 Zip、GZip、Tar 和 BZip2 的类库,完全由 C# 编写,面向 .NET 平台。 官网

持续集成(Continuous Integration)

  • TeamCity:可以直接使用的,可扩展、面向开发人员友好的构建服务器——开箱即用 [$] 官网
  • CruiseControl.NET:一个自动化持续集成服务器,使用 .NET Framework 实现。 官网
  • MyGet:为NuGet、NPM、Bower 和 VSIX 提供持续集成、部署、宿主程序包仓库的服务。[开源软件免费] [$] 官网
  • AppVeyor:.NET 持续构建和部署服务。 [$] [开源软件免费] 官网

加密(Cryptography)

  • BouncyCastle:和 .Net 的 System.Security.Cryptography 一起,在 CLR 上提供加密算法的实现。 官网
  • HashLib:HashLib 包含了几乎所有你见过的哈希算法,它几乎支持所有东西并且非常容易使用。 官网
  • libsodium-net:libsodium for .NET——一个安全加密库。 官网
  • StreamCryptor:使用 libsodium 和 protobuf 对流进行加密和解密。 官网 

数据库(Database)

  • BrightstarDb:BrightstarDB 是一个原生的 .NET RDF 三元组数据库(triple store)。 官网
  • Event Store:开源的功能性数据库,支持使用 JavaScript 进行复杂事件处理。 官网 
  • LiteDB:一个 .NET 的 NoSQL 单文件文档数据库。 官网
  • RavenDB:支持 linq 的 .NET 文档数据库。 官网

数据库驱动(Database Drivers)

  • MySQL Connector:完全托管的 MySQL ADO.NET 数据库提供程序、连接器。 官网
  • Npgsql:Postgresql 的 .Net 数据提供程序。 官网
  • MongoDB:MongoDB 官方 C# 驱动。 官网
  • ServiceStack Redis:.NET 领先的 C# Redis 客户端。 官网
  • StackExchange Redis:来自 StackExchange 的通用 redis 客户端。 官网
  • Cassandra:DataStax 开发的 Apache Cassandra .NET 驱动程序。 官网
  • Couchbase:couchbase 官方 .NET 客户端库,基于 Enyim memcached 客户端。 官网
  • Firebird.NET:由C# 编写的 .NET 数据提供程序,提供对 Firebird API 的高性能原生实现。 官网

反编译(Decompilation)

  • ILSpy:ILSpy 是一个开源的 .NET 程序集查看器和反编译器。 官网
  • JustDecompile Engine: JustDecompile 反编译引擎。 官网

部署(Deployment)

  • Unfold:基于 Powershell 的 .net web 应用程序部署解决方案。 官网

DirectX

  • SlimDX:为 .NET 应用程序提供的 DirectX 封装。 官网
  • SharpDX:SharpDX 是一个开源项目,为 .Net 及所有 Windows 平台提供完整的 DirectX API,可以开发高性能的游戏、2D/3D图形渲染以及实时音频应用程序。 官网

分布式计算(Distributed Computing)

  • Project Orleans:Orleans 框架提供了直接构建分布式、大规模计算应用的方法,无需学习和使用复杂的并行或扩展模型。由微软研究院开发。 官网
  • Akka.net:Akka.NET 是流行的 Java/Scala 框架 Akka 的 .NET 版本。它由社区提供,与 Typesafe(原始的 Java、Scala 版本的开发商)无关。 官网

文档(Documentation)

  • Sandcastle:Sandcastle 帮助文件生成器和 NDoc 类似。 官网
  • SharpDox:一个 c# 文档工具。 官网
  • Swashbuckle:向 WebApi 项目无缝地添加 swagger 文档(译者注:swagger 是一套用于生成、描述、展现 RESTful 风格 web 服务文档的框架和规范)。 官网
  • F# Formatting:F# 和 C# 项目的文档工具,文档生成自 F# 脚本文件、Markdown 文档、内嵌 XML 或 Markdown评论。 官网

本文由澳门新葡亰手机版发布于编程,转载请注明出处:修饰符的用法,NET开发资源大全

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文