[毕业生的商业软件开发之路]C#语法基础结构

简介:

近期开始接触到在校学生、高校实习生和毕业生,在此说一下笔者对这些徘徊在职场门口的学生一些建议,希望能给这些初学者进入软件开发行业带来一些帮助,使得毕业生能更顺利的进入软件开发公司开始职场生涯,人生来一个完美的转弯。[袁永福版权所有]

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

 

C#基本语法
课程介绍
面向读者说明C#编程语言的基本语法,本章要求阅读者已经掌握了一种计算机高级编程语言,比如VB或C++等,理解变量、数组、条件判断、循环等编程知识。达到了国家计算机等级考试二级的水平。
本章是面向C#初学者的,因此只介绍C#的基础语法,不介绍C#的高级语法。
 
C#的代码模块逻辑框架。
C#代码模块逻辑上分为命名空间、类型、成员。
以下就是一个完整的C#源代码内容,

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
     public partial class Form1 : Form
    {
         public Form1()
        {
            InitializeComponent();
        }
         private void button1_Click(object sender, EventArgs e)
        {
             MessageBox.Show("显示一个消息");
        }
    }
}

这段代码为例说明一下C#的代码模块组织结构。
命名空间就是C#最大的语法结构模块,这个模块是按照名称来标识的。每个类型都有所属的命名空间。同一个命名空间的类型不能重名,但不同的命名空间可以拥有相同名称的类型。
在C#中使用以下语法结构来使用命名空间。

namespace 命名空间名称
{
    若干个类型
}

在本例中,使用代码“namespace WindowsFormsApplication1 定义了一个名为“WindowsFormsApplication1”的命名空间,其中定义了名为“Form1”的类型。
对于很多编程语言,比如C语言,它没有命名空间的概念,几千个函数排列在一起,对于VB也是几百个类混在一起,这些都会导致开发人员记忆和调用非常不方便。
而使用命名空间,就能将诸多类型层次化,利于模块化,而且方便调用。
命名空间也可以分层次,比如以下代码。

namespace 命名空间名称
{
    若干个类型
}
namespace 命名空间名称.子命名空间
{
    若干个类型
}

 
 
 
 
 
 
 
 
 
 
这段代码就定义了一个命名空间和子命名空间,这个层数是没有限制的。
 
在C#功能代码中,要引用某个类型必须是它的类型全名,也就是“命名空间.类型名称”,此时代码显得比较臃肿,而且若未来类型的命名空间发生改变,则需要修改不少代码。此时C#使用using关键字来引用命名空间。
例如在演示代码的开头有一行代码“using System.Windows.Forms;”,此时就在代码中引用了命名空间“System.Windows.Forms”,而窗体类型“Form”就在这个命名空间下面,则可以在代码中直接使用“Form”来获得窗体的类型,若没有这个using代码,则必须使用“System.Windows.Forms.Form”来获得窗体类型,这就使得代码显得有些臃肿。从这里看,using关键字的作用有点类似VB中的with关键字。
注意using关键字除了能引用命名空间外,还能形成自动销毁对象的语法结构。
命名空间下面就是定义类型了,包括类类型、结构体类型、委托类型。命名空间下面不能直接跟上字段、函数等。因此C#没有游离于类型之外的函数。
理论上是可以跳出命名空间而直接编写类型,这样也能编译通过,但在实践中不推荐这么做。
在演示代码中,使用了以下的代码定义了一个类型。

public  partial class Form1 : Form
{
}

在这里,public关键字说明该类型是公开的,可以被任何程序调用。
partial关键字说明这段代码不是这个类型的全部代码,C#工程中还有其他的代码文件包含了这个类型的代码,在编译程序的时候,编辑器会收集这些分散的源代码收集起来组成一份完整的源代码参与编译。
class关键字说明这是在定义一个类类型。
Form1是新类型的名称。
Form是跟在Form1后面,中间有一个引号,这个说明新增的类型Form1是集成自已有的类型Form。若前面没有代码“using System.Windows.Forms.Form”引用命名空间,则该行代码必须写成“public partial class Form1 : System.Windows.Forms.Form”。
Form后面跟着一对花括号就定义了它的类型成员定义区域。
类型下面就是定义类型的成员了,包括字段、属性、方法和事件。
在演示代码中,使用以下代码定义了一个名为Form1的成员方法。

public Form1()
{
   InitializeComponent();
}

该方法名称和类型名称一样,而且没有定义返回值,因此该方法就是该类型的构造函数。
以下代码定义了一个成员方法。

private  void button1_Click(object sender, EventArgs e)
{
    MessageBox.Show("显示一个消息");
}

在这段代码中,private关键字说明该方法是私有的,只能在本类型内部使用,类型之外就不能使用。[袁永福版权所有]
void关键字说明该方法没有任何返回值。
button1_Click是该方法的名称。
“object sender”定义了该方法的第一个参数,object是参数类型,sender是参数名;类似的“EventArgs e” 定义了第二个参数,两个参数之间用逗号分开。
函数声明后面就是函数体了。在这里使用了一行代码“MessageBox.Show( "显示一个消息");”,这行代码调用了类型MessageBox的Show方法,参数是字符串“"显示一个消息"”。这行代码就是调用类型System.Windows.Forms.MessageBox的Show静态方法来显示一个文本消息框。
注意在写C#代码时,记得要根据需要写上分号“;”。

 [袁永福版权所有]





     本文转自xdesigner 51CTO博客,原文链接:http://blog.51cto.com/xdesigner/619223,如需转载请自行联系原作者






相关文章
|
6月前
|
存储 开发框架 .NET
【C#】C# 基础语法与游戏开发
【1月更文挑战第21天】【C#】C# 基础语法与游戏开发
|
6月前
|
C#
C#的基本语法结构学习
【5月更文挑战第17天】C#基础语法包括变量(如`int x = 10`)、常量(`const int MAX_VALUE = 100`)、运算符(如算术和比较运算符)、控制语句(if、for、while等)和函数声明(`int Add(int x, int y) { return x + y; }`)。这些构成C#程序的基本元素。
75 0
|
3月前
|
存储 C# 索引
C# 集合语法全解
C# 集合语法全解
29 0
|
6月前
|
开发框架 安全 .NET
C# .NET面试系列一:基础语法
<h2>基础语法 #### 1. 字符串中 string str = null 和 string str = "" 和 string str = string.Empty 的区别? string str=null: ```c# 这表示字符串变量str被初始化为null,即它不引用任何对象。这与空字符串是不同的,因为空字符串是一个具有零长度的字符串对象,不会分配内存空间 ``` string.Empty: ```c# 这表示字符串变量str被初始化为空字符串,即一个具有零长度的字符串对象。这与null是不同的,因为str引用了一个空字符串对象 ``` string str="" :
120 1
|
6月前
|
C#
C#语法快速热身
C#语法快速热身
|
6月前
|
存储 C# 开发者
C#基础语法
C#基础语法
34 0
|
6月前
|
存储 C#
C#基础语法(类和对象)
C#基础语法(类和对象)
39 2
|
6月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
188 3
|
4天前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
16 3
|
25天前
|
安全 C# 数据安全/隐私保护
实现C#编程文件夹加锁保护
【10月更文挑战第16天】本文介绍了两种用 C# 实现文件夹保护的方法:一是通过设置文件系统权限,阻止普通用户访问;二是使用加密技术,对文件夹中的文件进行加密,防止未授权访问。提供了示例代码和使用方法,适用于不同安全需求的场景。