标题:编程新人问一下编程规范和习惯
只看楼主
Theron
Rank: 1
等 级:新手上路
帖 子:127
专家分:0
注 册:2006-9-23
 问题点数:0 回复次数:7 
编程新人问一下编程规范和习惯

如下面代码是对注册表操作的DEMO

//--------------第一种风格代码开始--------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;

namespace Sep_23_Registry_WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

}

//-----------------------------------------------------
//下面定义了两个类的全局变量, 因为有多处要用到,
//为了方便起见, 所以定义为整个类可用的变量
//下面第二风格就不定义类全局变量

//下面的 key 定义为 static, 是不是尽可能不要将字段定义为 static?!
static RegistryKey key = Registry.CurrentUser;
RegistryKey subKey = key.OpenSubKey("MyKey", true);
//----------------------------------------------------

private void Form1_Load(object sender, EventArgs e)
{
if (subKey.GetValue("width") != null && subKey.GetValue("height") != null)
{
this.Size = new Size((int)subKey.GetValue("width"), (int)subKey.GetValue("height"));
}
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
subKey.SetValue("width", this.Size.Width);
subKey.SetValue("height", this.Size.Height);
}
}
}

//-------------------------------------第一种风格代码结束--------------------




//-------------------------------------第二种风格代码开始-------------------
//命名空间省略

namespace Sep_23_Registry_WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

}

//----------------不定义类全局变量

private void Form1_Load(object sender, EventArgs e)
{
//下面定义两个 RegistryKey
RegistryKey key = Registry.CurrentUser;
RegistryKey subKey = key.OpenSubKey("MyKey");

if (subKey.GetValue("width") != null && subKey.GetValue("height") != null)
{
this.Size = new Size((int)subKey.GetValue("width"), (int)subKey.GetValue("height"));
}
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//下面定义两个 RegistryKey
//这里又定义了一次
RegistryKey key = Registry.CurrentUser;
RegistryKey subKey = key.OpenSubKey("MyKey", true);

subKey.SetValue("width", this.Size.Width);
subKey.SetValue("height", this.Size.Height);
}
}
}

//--------------------------第二种风格代码结束-------------------------------------





偶想问的问题有:
1. static 是不是要尽量少用?
2. 对于程序多次用到的变量是定义是全局好还是在必须用到的地方才定义,
偶曾听老鸟们说尽最大可能不定义全局变量, 但如果用后者的话偶又觉得老是重新定义, 会不会耗资源和影响程序运行速度.

程序员一般是遵行哪个风格比较好?!

3.下面两种风格代码哪种好, 第一种代码比较整洁, 但多用到了两个变量, 耗资源, 而第二种却不用, 但代码相对乱了一点.

程序员一般是遵行哪个风格比较好?!

//------------------第一种风格代码开始---------------------
//将两个要用到的变量先存起来再使用
int width = int(subKey.GetValue("width"));
int height = (int)subKey.GetValue("height"));

this.Size = new Size(width,height);
//------------------第一种风格代码结束---------------------

//------------------第二种风格代码开始---------------------
//不存将使用到的变量, 直接调用
this.Size = new Size((int)subKey.GetValue("width"), (int)subKey.GetValue("height"));
//------------------第二种风格代码结束---------------------



偶是新手, 有不正确的地方请大虾们多多包涵!谢谢!

搜索更多相关主题的帖子: using System Microsoft 新人 习惯 
2006-09-23 22:47
61×57
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2006-9-21
得分:0 
以下是引用Theron在2006-9-23 22:47:19的发言:
偶想问的问题有:
1. static 是不是要尽量少用?
2. 对于程序多次用到的变量是定义是全局好还是在必须用到的地方才定义,
偶曾听老鸟们说尽最大可能不定义全局变量, 但如果用后者的话偶又觉得老是重新定义, 会不会耗资源和影响程序运行速度.

程序员一般是遵行哪个风格比较好?!

3.下面两种风格代码哪种好, 第一种代码比较整洁, 但多用到了两个变量, 耗资源, 而第二种却不用, 但代码相对乱了一点.

程序员一般是遵行哪个风格比较好?!

//------------------第一种风格代码开始---------------------
//将两个要用到的变量先存起来再使用
int width = int(subKey.GetValue("width"));
int height = (int)subKey.GetValue("height"));

this.Size = new Size(width,height);
//------------------第一种风格代码结束---------------------

//------------------第二种风格代码开始---------------------
//不存将使用到的变量, 直接调用
this.Size = new Size((int)subKey.GetValue("width"), (int)subKey.GetValue("height"));
//------------------第二种风格代码结束---------------------



偶是新手, 有不正确的地方请大虾们多多包涵!谢谢!

1、我觉得用它无所谓了,没记得要少用啊,只是我不经常用,因为我没碰到过要大量用static的时候。
2、你用的是C#,那你的这个要求,我一般会定义成一个字段,你可以理解成全局变量。
3、没觉得两种风格有什么区别,我两种都会用,随心情而定,没有哪个好哪个不好的,只是维护代码的时候能看的清楚就可以了。


他们虽然没有相加成一个偶数,却曾经相乘出一种幸福……
2006-09-24 00:37
Theron
Rank: 1
等 级:新手上路
帖 子:127
专家分:0
注 册:2006-9-23
得分:0 
谢谢 楼上的姐姐

2006-09-24 08:11
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
得分:0 
第一個
不過沒必要用static

第一個
性能上沒差別,
而且更加好維護

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-09-24 08:55
Theron
Rank: 1
等 级:新手上路
帖 子:127
专家分:0
注 册:2006-9-23
得分:0 
以下是引用chenjin145在2006-9-24 8:55:24的发言:
第一個
不過沒必要用static

第一個
性能上沒差別,
而且更加好維護

哦, 谢谢 !

那第一个有什么不足的地方吗


2006-09-24 11:00
梦幻情缘
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:769
专家分:20
注 册:2005-4-4
得分:0 
百度.
2006-09-24 13:07
xupeng
Rank: 1
等 级:新手上路
帖 子:4049
专家分:0
注 册:2006-2-12
得分:0 
单词首字母要大写,其他的要小写(关键字除外)
如:TextBox1.Text = "hello,world!";

反清复明 http://xupeng.
2006-09-24 14:56
Theron
Rank: 1
等 级:新手上路
帖 子:127
专家分:0
注 册:2006-9-23
得分:0 
以下是引用xupeng在2006-9-24 14:56:56的发言:
单词首字母要大写,其他的要小写(关键字除外)
如:TextBox1.Text = "hello,world!";

常量, 变量就采用Camel法, 方法, 类采用Pascal法, 不是这样吗?!

int strSource;
public void GetVal();

2006-09-24 15:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-92459-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033493 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved