C#中创建项目实用技巧

项目框架规范

1.在项目中可将要用到的文件夹先创建出来,后续其他窗体或模块可分别放置在不同文件夹中。
             图1 项目文件夹
如图1所示,分别创建DataClass、InfoAddForm、ModuleClass、PerForm文件夹,DataClass文件夹用来封装数据库类文件,InfoAddForm文件夹装载调用窗体部分,ModuleClass文件夹用来存放公共类模块,PerForm文件夹用来放置界面基本窗体。
用户可在开发过程中,根据实际情况合理创建文件夹,这样做可为后续实际开发提供清晰思路。

一个解决方案创建多个项目

添加链接描述
添加链接描述
添加链接描述
添加链接描述
添加链接描述
在一个解决方案中是可以添加多个项目的,多个项目之间可以存在依赖关系,也可以相互独立
相互独立:每个项目都有自己的入口,则同一时间解决方案只能有一个活动入口,相当于只有一个项目存在,通过设置可以选择哪个项目作为活动项目,则之后的编译、运行都是针对该项目的。例如:在一个解决方案中有A、B两个项目,A、B项目单独运行,功能都是正常的,互不干扰,右键点击A项目,找到“设为启动项目”,运行程序,只针对A项目功能,此时B项目相当于保存在解决方案中。
在这里插入图片描述

项目之间相互依赖:项目间存在相互调用,只存在一个入口。这对于多种语言混编的管理特别方便。例如,在C#项目A中需要引用项目B,再将项目A、项目B都加入解决方案中后,项目A的引用中添加项目B名称,同时初始化项目A时,为方便在项目A中调用项目B的方法,可将项目B中被调用的方法重新命名。
将上述项目独立的两个项目改为项目之间的引用,在项目MES_VIEW中的引用中添加,右击引用,“添加引用-项目-浏览”,找到MESAPI项目文件夹,所有文件中筛选MESAPI.csproj,点击确定,即可引用成功。
现假设MESAPI中有如下类及方法:

public class MESADD
    {
        public int add()
        {
            int a = 0;
            int b = 1;
            return a + b;
        }
    }

在MES_VIEW中需要调用此方法,则窗体初始化时,重命名实项目MESAPI中的类MESADD为MESADD1,private MESAPI.MESADD MESADD1;并实例化this.MESADD1 = new MESAPI.MESADD();

 #region Windows 窗体设计器生成的代码

        /// <summary>
        /// 设计器支持所需的方法 - 不要修改
        /// 使用代码编辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.SuspendLayout();
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(800, 450);
            this.Name = "Form1";
            this.Text = "Form11";
            this.ResumeLayout(false);
            this.MESADD1 = new MESAPI.MESADD();     //实例化
        }
        private MESAPI.MESADD MESADD1;              //重命名

        #endregion

同时在需要调用的地方引用,代码如下,运行程序,可在输出中查看,或打断点,按F11查看程序跳转的位置是否为项目MESAPI中的类方法

namespace MES_VIEW
{
    using MESAPI;	//引用
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Console.WriteLine(MESADD1.add());	//方法引用
        }
    }
}

公共类模块设计

1.变量定义

静态全局变量
定义:在全局变量前,加上关键字 static 该变量就被定义成为了一个静态全局变量。

特点:
  A、该变量在全局数据区分配内存。
  B、初始化:如果不显式初始化,那么将被隐式初始化为0。

public static string Login_ID = ""; //定义全局变量,记录当前登录的用户编号
public static string Login_Name = "";  //定义全局变量,记录当前登录的用户名

静态全局变量与非静态全局变量二者最大区别:这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它
  例如源文件程序包含2个公共类,分别为A类和B类,在A类中定义静态全局变量,即加static关键字,则在A类模块中通用,但在B类模块中则无效,在A类中定义非静态全局变量,即不加static关键字,则在A类模块中通用,在B类模块中该变量也有效。

静态局部变量
定义:在局部变量前加上static关键字时,就定义了静态局部变量。

特点:
  A、该变量在全局数据区分配内存。
  B、初始化:如果不显式初始化,那么将被隐式初始化为0。
  C、它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束。

2.类中方法

1.类中静态方法与非静态方法

C#的类中可以包含两种方法:静态方法和非静态方法。.使用了static 修饰符的方法为静态方法,反之则是非静态方法。 静态方法是一种 特殊的成员方法,它不属于类的某一个具体的实例,而是属于类本身。所以对静态方法不需要首先创建一个类的实例(即对象),而是采用类名静态方法的格式 。
1.static方法是类中的一个成员方法,属于整个类,即不用创建任何对象也可以直接调用! static内部只能出现static变量和其他static方法!而且static方法中还不能使用this…等关键字。因为它是属于整个类!
2.静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值