首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编写高质量代码改善C#程序157个建议

前言   泛型并不是C#语言一开始就带有的特性,而是在FCL2.0之后实现新功能。基于泛型,我们得以类型参数化,以便更大范围地进行代码复用。同时,它减少了泛型类及泛型方法转型,确保了类型安全。...委托本身是一种引用类型,它保存也是托管堆对象引用,只不过这个引用比较特殊,它是对方法引用。事件本身也是委托,它是委托组,C#中提供了关键字event来对事件进行特别区分。...一旦我们开始编写稍微复杂C#代码,就肯定离不开泛型、委托和事件。本章针对这三个方面进行说明。   ...这里也有一篇之前我对泛型简单理解篇 http://www.cnblogs.com/aehyok/p/3384637.html C# 泛型简单理解(安全、集合方法、约束、继承) 本文已更新至http...泛型为C#带来是革命性变化,FCL之后很多功能都是借助泛型才得到了很好实现,如LINQ。LINQ借助于泛型和扩展方法,有效地丰富了集合查询功能,同时避免了代码爆炸并提升了操作性能。

60220

1-泛型

C#泛型由CLR在运行时支持,这使得泛型可以在CLR支持各种语言上无缝集合C#泛型代码在被编译[第一次编译]为IL代码和元数据时[泛型版IL和元数据], 采用特殊占位符来表示泛型类型,并用专有的...泛型类型和泛型方法 可以用于泛型类型有类、接口,结构、委托。 C#支持泛型方法,但不支持除方法其他成员[属性、事件、索引器、构造器、析构器。...但这些成员本身可以包含在泛型类型,并使用泛型类型类型参数]; 泛型方法可以包含在泛型类型,也可以包含在非泛型类型[即普通类型]。...泛型方法: public class GenericsMehod { //非泛型类泛型方法,参数约束为引用类型 // public int FindItem...泛型约束支持四种形式约束【接口约束,基类约束,构造器约束,值类型/引用类型约束】; 约束并不是必须,如果没有指定约束,那么类型参数只能访问System.Object类型公有方法

898100
您找到你想要的搜索结果了吗?
是的
没有找到

.Net语言 APP开发平台——Smobiler学习日志:Poplist控件在APP应用场景以及代码

最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP开发平台,也许比Xamarin更方便 一、目标样式 我们要实现上图中效果,需要如下操作: 1.从工具栏上”Smobiler...Components”拖动一个PopList控件到窗体界面上 2.修改PopList控件属性 a.Groups属性 打开集合编辑器,并点击“添加”,如图1 Text和Value中都输入需要在列表显示选项...,如图2 在Items添加数据,如图3 图1 图2 图3 b.Selections属性 设置默认选项,需要在代码实现 VB: Private Sub Button1_Click(senderAs...(6)) End If End Sub C#: private void Button1_Click(object sender, EventArgs e) {...[0]); } } c.MultiSelect属性 默认设置不允许多选 d.Selected事件 在内容选择完成后事件 事件代码: VB: Private Sub PopList1

73430

c#编写一个Windows激活工具

介绍 本文给大家介绍一下我用c#windows激活工具 该exe文件是本人自己写,供学习使用,也可以作为工具使用。...用c#语言写,原来是用c#隐式执行cmd命令达到给Windows添加秘钥和卸载秘钥(即主要激活能和恢复到未激活状态这2个功能) 首先看一下界面 在这里插入图片描述 演示一下运行效果!!!...隐式执行cmd命令和你自己在以管理员身份运行cmd上运行是一样,只是封装成exe文件使用起来更方便一点而已,没有什么技术含量。...首先要将界面设计好 在这里插入图片描述 从图中可以看到只有2个按钮,so,代码也只有2个click事件( button1_Click和 button2_Click) Button1 private...-4J6C9-T83GX", "slmgr /skms kms.03k.org" }; 这个string类型数组就是起到储存cmd执行命令作用。

1K00

.Net语言 APP开发平台——Smobiler学习日志:Poplist控件正确打开方式以及如何快速实现

最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP开发平台,也许比Xamarin更方便 样式一 一、目标样式 我们要实现上图中效果,需要如下操作: 1.从工具栏上”Smobiler...展开模式(本样式选用展开模式) 打开集合编辑器,并点击“添加”,如图1 其中包括indexerKey(分类筛选类型)、Text(菜单组文本)和Value(内部值,不在界面上显示),如图2 在Items...添加数据,如图3 PopList控件手机显示效果如图4 图1 图2 图3 图4 筛选分类模式 indexerKey(分类筛选类型)、Text(菜单组文本)和Value(内部值,不在界面上显示...)设置见图5 在Items添加数据,如图6 PopList控件手机显示效果如图7 图5 图6 图7 b.MultiSelect属性 默认设置不允许多选 c.Selections属性 设置默认选项...[0]); } } d.Selected事件 在内容选择完成后事件 事件代码: VB: Private Sub PopList1_Selected(senderAs Object

54920

1-4 多文档界面处理(3)

通过类属性进行数据传值 此次案例我们改变本节案例(1)数据传值方法,通过建立类属性数据传递过去。...菜单本质就是提供了命令分组一致方法,使得用户易于访问,通过支持使用访问键启用键盘快捷方式,达到快速操纵软件系统目的。 菜单从分类来说,可以分为菜单栏、主菜单和子菜单三个概念。...图1-28 直接中文命名不利于程序开发 虽然上述设计不会出现代码错误,但是建议采用点击MenuStrip控件,选择该控件Items属性,在展开项目集合编辑器中直接设置办法。...如图1-29为打开Items属性后项目集合编辑器。 ?...图1-29 打开items属性后项目集合编辑器 (3)如果在命名时候在Text属性处键入“文件(&F)”,将会产生“文件(F)”效果,&将被认为是快捷键字符。运行时候为alt+f键执行。

59310

DropDownList 详解「建议收藏」

5、Items属性:表示列表各个选项集合,如DropDownList.Items(i) 表示第i个选项,i从0开始。每个选项都有以下3个基本属性: Text 属性:表示每个选项文本。...items.Remove方法,可从DropDownList控件删除指定选项; Insert方法:通过items.insert方法,可将一个新选项插入到DropDownList控件; Clear...方法:通过items.clear方法可以清空DropDownList控件选项。...9、 SelectedIndexchanged事件:当用户选择了下拉列表任意选项时,都将引发SelectedIndexChanged事件。...,通过查询以后得到一个DataSet对象,使用该对象WriteXML方法直接内容写到 Response.OutputStream里面然后传递到客户端,客户端load方法通过result =oHttpReq.responseText

2.7K20

.NET周刊【5月第3期 2024-05-19】

BaseModel 继承自 PageModel,通过检查请求数据或 Cookie 来确定访问有效性,无效访问弹出错误提示,并中断页面加载和回发事件。...泛型基本语法包括泛型方法与类定义及实例化,泛型接口、委托声明和泛型约束使用。泛型在集合类、数据结构、算法、数据库操作和网络编程等多个场景下都有广泛应用。...文章还解释了如何使用 HttpContext Items 集合在不同组件间共享验证后 Client 对象,同时指出 HttpContext 作用和重要性。...动态(实例)方法 - Qiita https://qiita.com/yaju/items/44b207477d1cb1c81bfb 使用 Azure OpenAI 服务代码从 VB 转换为 C https...SDK 数据发送到 OCI Streaming - Qiita https://qiita.com/atwits/items/f23283cc58ee2a24a79e 在 Maui Blazor 上使用

8500

python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例

PyQt5下拉列表框控件QComboBox介绍 QComboBox是一个集按钮和下拉选项于一体控件,也称做下拉列表框 QComboBox类常用方法如表 方法 描述 addItem() 添加一个下拉选项...addItems() 从列表添加下拉选项 Clear() 删除下拉选项集合所有选项 count() 返回下拉选项集合数目 currentText() 返回选中选项文本 itemText(i...(self.cb.currentText()) print('Items in the list are:') #输出选项集合每个选项索引与对应内容 #count():返回选项集合数目...下拉列表框控件QComboBox代码分析: 在这个例子显示了一个下拉列表框和一个标签,其中下拉列表框中有几个选项,既可以使用QComboboxaddItem()方法添加单个选项,也可以使用addItems...('Python') #多个添加条目 self.cb.addItems(['Java','C#','PHP']) 当下拉列表框选中选项发生改变时发射currentIndexChanged

3.5K21

使用C#开发数据库应用程序

string boolean bool 注意:C#布尔类型关键字与java不同,使用bool,C#字符串数据类型是小写。...JavaSystem.out.println();方法用法相同.第三种方式可是C#新东西.....方法名 若果不是static ,则需创建对象再调用 3-3:IDE使用技巧进阶 选中代码时候,点击右键选择重构-提取方法,就会自动生成 如上面的那个Swap()方法 3-4:C#String...类型与类同名【如上所示:】 4-3:使用窗体控件 a.使用菜单条 Name 代码中菜单对象名称 Items 在菜单显示集合 Text 与菜单相关联文本 Name 窗体对象名称...a.使用工具条控件和状态条控件 工具条和状态条主要属性 ImageScalingSize 工具条或状态条项显示图像大小 Items 在工具条或状态条上显示项集合 工具条或状态条上按钮和标签主要属性和事件

5.9K30

迭代器模式

1.概要 主要思想和实现方式: 迭代器模式主要思想是数据存储和遍历分离,使得客户端可以通过统一接口遍历不同类型集合,而不需要关心集合具体实现。...在C#,迭代器模式可以通过实现IEnumerable接口和IEnumerator接口来实现。...IEnumerable接口定义了一个方法GetEnumerator(),该方法返回一个实现了IEnumerator接口迭代器对象。...IEnumerator接口包含了MoveNext()方法,用于移动迭代器到集合下一个元素,以及Current属性,用于获取当前元素值。...适用场景: 当集合背后为复杂数据结构,且希望对客户端隐藏其复杂性时,可以使用迭代器模式。迭代器封装了与复杂数据结构进行交互细节,提供了简洁遍历接口。

14230

5-迭代器

1.枚举数 枚举数是循环访问其关联集合对象。它可被视作指向集合任何元素可移动指针。 一个枚举数只能与一个集合关联,但一个集合可以具有多个枚举数。...C#foreach 语句使用枚举数并隐藏操作该枚举数复杂性。枚举数可用于读取集合数据,但不能用于修改基础集合。...集合要支持foreach则需要实现System.Collections.IEnumerable接口[公开枚举数,该枚举数支持在非泛型集合上进行简单迭代, 也可以不实现该接口,该接口定义了一个方法GetEnumerator...(),返回一个支持IEnumerator接口对象,IEnumerator成员如下: 名称 说明 bool MoveNex t方法 枚举数推进到集合下一个元素 void Rese t方法 枚举数设置为其初始位置...,该位置位于集合第一个元素之前 object Current 属性 获取集合的当前元素 写一个: 1 2 public class MyCollections : IEnumerable

48550

C#复习题 填空题

C#使用  const     关键字声明符号常量。 调用DataAdapter对象 Fill()   方法填充数据集。...在数据类型,浮点型包括单精度和 双精度     两种。 窗体控件默认事件是 Load事件(加载事件)         。 可以数据源数据与控件属性关联起来,这称为 数据层     。...NET使用 System.Data.SqlClient   命名空间类访问SQL Server数据库数据。 窗体控件默认事件是 加载事件     。...添加到窗体每个组件,如Button、TextBox等,都称为 控件         。 在C#文本框TextBox1清空,可用语句表示为  Items.Clear();   。...在C#文本框TextBox1清空,可用语句表示为 Items.Clear();       。 已知:double x=4.3%1.7; 则x值是_2_ 。

3.9K10

泛型

如今,泛型已经广泛应用于C#各个领域,其中用得较多有如下几项: 集合(在集合泛型一如既往地重要); 委托(尤其是在LINQ应用); 异步代码(Task表示该方法返回一个类型为T值);...不过,这4项用途足以表明泛型特性已经深入C#开发人员日常工作中了。以集合为例来展现泛型诸多优势,可谓再合适不过了。可以通过对比.NET 1普通集合和.NET 2泛型集合来充分体会。...数组和专用类型集合都属于静态类型,因此API可以阻止错误类型值添加到集合。在从集合取值时,也无须手动转换类型。说明 由于存在数组协变机制,因此引用类型数组不能完全确保类型安全。...假设需要创建一个方法,该方法把一个集合前N个元素复制到一个新集合,之后返回该新集合。如果使用ArrayList,那就等同于舍弃了静态类型优势。...使用泛型,还可以解决使用元素类型作为方法输入类型这一问题。下面介绍更多术语,以便进一步深入探讨。

1.3K10

Windows 商店应用中使用 SharePoint REST API

当需要向列表插入新项时,我们需要使用列表项集合 API,使用 POST 方法插入数据。而需要修改列表某一项时,则需要使用指定列表项 API,使用 MERGE 方法来更新数据。       ...(2)$filter 参数        如 SQL Where 使用方法,这里 $filter 是用来筛选数据筛选条件,使用方法是:_api/web/lists/getByTitle('Books...(3)$expand 参数        这个参数用于指定返回联接列表哪些投射字段。使用方法是:_api/web/lists/getByTitle('Books')/items?...使用方法是:_api/web/lists/getByTitle('Books')/items?...获得 OAuth 访问令牌加入到请求标头中。这里我们不做详细介绍了。关于 API本身使用过程,和其他 API 没什么差异,这里就不做详细介绍了。

4.8K150

【地铁上设计模式】--行为型模式:迭代器模式

在客户端代码,通过调用聚合类 createIterator() 方法获取迭代器实例,并使用迭代器 hasNext() 和 next() 方法遍历聚合对象元素。...我们使用 ArrayList 存储了一些字符串,然后通过调用 iterator() 方法获取到了一个迭代器 it,并使用 while 循环和 hasNext() 和 next() 方法来遍历所有元素并打印它们值...总结 迭代器模式是一种行为设计模式,它提供了一种简单方式来访问集合对象元素,而不需要暴露集合内部表示细节。...迭代器模式集合遍历行为抽象成一个迭代器接口,使得客户端代码可以通过迭代器遍历集合元素。...优点:迭代器模式可以隐藏集合内部实现细节,从而使得客户端代码可以使用同样方式遍历不同类型集合,而不需要关心集合具体实现。

34810
领券