01】C#基本功能

时间:2022-02-22 21:43:09

C#是一种功能强大的语言,但并不是所有程序员都熟悉我们将在本书中讨论的所有功能。因此, 本章将介绍优秀的Web窗体程序员需要了解的C#语言功能

本章仅简要介绍每一项功能。有关C#语言本身的知识不是本课程讲述的重点(本课程重点讲述Asp.net技术)。读者需要在学习本门课程之外,利用空余时间去学习C#语言基础知识。推荐几本参考书籍:

《C#4.0图解教程》:https://yunpan.cn/ck7CeQGc5naFD (提取码:ffc7)

《C#编程语言与面向对象基础精简教程》:https://yunpan.cn/ck7hugfgDPPHi (提取码:6b42

1.创建示例项目

为了演示语言功能,本节创建了一个名为LanguageFeatures的新的ASP.NET Empty Web Application (ASP.NET空Web应用)项目。 为了演示不同的功能,在项目中添加了一个Web窗体,以便添加新的Default.aspx文件,该文件的内容如代码清单3-1所示。

代码清单3-1 Default.aspx文件的初始内容

代码为该页面添加了一个标题,并用一些标准HTML元素替换了默认的窗体条目,这包括一个p 元素,其中包含插入计算GetMessage方法的结果的代码片段。在Default.aspx.cs代码隐藏文件中定义了 GetMessage方法,该文件的内容如代码清单3-2所示。

这是一个非常简单的起点。启动应用程序后,Web窗体生成的HTML如图3-1所示。

思考: 1.如果在Default.aspx.cs文件中没有定义GetMessage方法,运行Default.aspx页面会不会出错? 2.如果Default.aspx.cs代码修改成如下代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Text; using System.Threading.Tasks; namespace LanguageFeatures { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } } public class MyDefault { protected string GetMessage() { return "Hello,This is a Web Form"; } } } 此时访问Default.aspx页面,是否会出错?为什么?

2.使用自动实现的属性

属性是C#类中的一种成员,有关属性的介绍请参考:。

下面要讲述的是如何实现自动属性和为什么要使用自动属性。

在 LanguageFeatures项目中添加一个Product类,该类中包含了一个简单的示例,如代码清单3-3所示。 (要创建新类,请在Solution Explorer中右键单击LanguageFeatures项,然后从弹出式菜单中选择Add →Class。将名称设置为Product.cs,然后单击Add按钮创建该文件。)

这个Name属性以粗体显示。将在读取该属性值时执行get代码块(称为getter)中的语句,在为该 属性分配值(特殊变量value表示分配的值)时执行set代码块(称为setter)中的语句。 属性将由其他类使用,就好像它是一个字段一样,如代码清单3-4所示,它演示了如何使用 Default.aspx.cs代码隐藏类中的属性。

如上所示,代码读取并设置了属性值,就像它是一个常规字段一样。使用属性要优于使用字段, 因为你可以更改get和set代码块中的语句,而无需更改所有依赖该属性的类。 启动项目,即可看到此示例的效果。由于仅使用了Default.aspx Web窗体来显示GetMessage方法返 回的字符串,因此将以文本而不是屏幕截图的形式显示结果。启动应用程序后,浏览器显示的消息如 下所示:

Product name:Kayak

很好!但是,如果类包含许多属性,所有这些属性都只是间接访问某个字段,那么代码就会变得 冗长起来,最终导致代码过于臃肿,看看代码清单3-5就知道了: