C#类设计规范

freeingwind 2011-09-10 02:36:45
本人刚学C#,现在用C#在wince上做一个项目,是一个数据录入的应用程序,是录入学生信息的,然后保存至sql数据库中,假设学生信息包括:学号,姓名,班级,班级编号,性别,年级,年级编号,年龄,家庭电话,家庭地址。项目我差不多完成了。只不过刚学C#,代码乱七八糟,一点都不规范,所以想请教各,这个类怎样设计才规范。让我最头疼的是参数合法性检查,比如:学号只能是由10位数字组成,当用户输入非数字或是长度不对时要提醒用户。这样每次给学号变量赋值时都要先检查再赋值如:
public bool SaveStudentInfo()
{
if((txtNumber.text.length == 10) ||(IsNumeric(txtNumber.text)))
{
stuNumber = txtNumber.text;
}
else
{
messagebox.show("学号不合法,请重新输入!")
return false;
}
…………//dosomething
}
我想用get set来设计
public class Student
{
private string _stuNumber;
…………
public string stuNumber
{
get {return _stuNumber;}
set
{
if((stuNumber.length == 10) ||(IsNumeric(stuNumber)))
{
_stuNumber = stuNumber;
}
else
{
messagebox.show("学号不合法,请重新输入!");
_stuNumber = "";
}
}
}
}
然后在函数中:
public bool SaveStudentInfo()
{
Student MyStudent = new Student();
MyStudent.stuNumber = txtNumber.text;//这样赋值我还是不知道txtNumber.text是否合法,还是得在外部进行检查
if(MyStudent.stuNumber == "")
{
return false;
}
…………//dosomething
}
这样也很麻烦,各位有没有什么更好的方法用于参数检测,并给用户相应的提示信息。
另外学生有10几个字段的信息,那么函数就要有10几个入口参数,这样太多了,有没有办法变方便点。
...全文
128 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluesands_zhang 2011-09-13
  • 打赏
  • 举报
回复
我也刚学,很明显楼主比我规范多了,我喜欢把所有程序放在主程序内,不会写类
  • 打赏
  • 举报
回复
我以前写代码也没规范性额。你是学生,本来可以不需要规范的,在学校嘛,做出功能即可。但是没规范的代码就是垃圾,所以为了不制造太多垃圾,建议你去看看设计模式,这个东西不像其它看了马上就能用,你只有不断编写代码,才能从中理解意思。
例如设计模式里有:开放关闭原则,里氏替换原则,依赖颠倒等等,它是教你如何写代码,设计代码。当然你完全没必要去看,看了也不能在1年内懂,你必须慢慢写代码慢慢理解的。呵呵。
一般的公司设计代码都是模块化设计。
你基础可能太差了,不多说了,我的建议是先熟悉了,补了基础再去考虑这些,你慢慢就能理解的。
freeingwind 2011-09-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 a123321444 的回复:]
用继承,在父类中定义一个Check()方法
[/Quote]这个具体怎么做,能不能简单写几行代码.
liyajie865808403 2011-09-10
  • 打赏
  • 举报
回复
学习啊。。。
a123321444 2011-09-10
  • 打赏
  • 举报
回复
用继承,在父类中定义一个Check()方法
LMAOhuaNL 2011-09-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]

因为你基础太薄弱,所以你不知所措,没关系,按照你自己的想法去做,可以不断完善,慢慢就知道哪种方法适合你,各种模式不是硬性的去套用的
合法性检查,你可以自己判断,最笨的也就是逐个字符的检查,还可以研究正则
[/Quote]
支持
bdmh 2011-09-10
  • 打赏
  • 举报
回复
因为你基础太薄弱,所以你不知所措,没关系,按照你自己的想法去做,可以不断完善,慢慢就知道哪种方法适合你,各种模式不是硬性的去套用的
合法性检查,你可以自己判断,最笨的也就是逐个字符的检查,还可以研究正则

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧