【请教】请问这两种设计哪种好?

artwl_cn 2010-10-23 11:52:45

public abstract class FileInfo
{
public string filePath;
public void Open();
}

public abstract class FileInfo
{
public void Open(string filePath);
}


请问大家一般用哪种,为什么?
...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
artwl_cn 2010-10-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wanghui0380 的回复:]
看上下文环境

就通常意义来说第二种比较好,因为他的语义比较明确。也不会过多暴露内部逻辑,适用于通用api类提供

而第一种是场合性的模板,适用于一些带有综合性功能的对象。比如大型控件和对象的基础基类
[/Quote]
非常感谢,结帖
wanghui0380 2010-10-23
  • 打赏
  • 举报
回复
看上下文环境

就通常意义来说第二种比较好,因为他的语义比较明确。也不会过多暴露内部逻辑,适用于通用api类提供

而第一种是场合性的模板,适用于一些带有综合性功能的对象。比如大型控件和对象的基础基类
artwl_cn 2010-10-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 flowerdancex 的回复:]
怎么看怎么别扭呢 你这个不是抽象方法 放抽象类里了 还加分号 肯定报错了
[/Quote]
是写错了,刚才从其它类随手改的,应该是这样。
public abstract class FileInfo
{
public string filePath;
public void Open(){}
}

public abstract class FileInfo
{
public void Open(string filePath) { }
}
hugang709979940 2010-10-23
  • 打赏
  • 举报
回复
个人感觉没有多大区别,谈不上什么好与坏。
  • 打赏
  • 举报
回复
怎么看怎么别扭呢 你这个不是抽象方法 放抽象类里了 还加分号 肯定报错了
sainmars 2010-10-23
  • 打赏
  • 举报
回复
看你是要做什么用了 第一种filePath是属性
第二种是参数 作用范围不同
hao1hao2hao3 2010-10-23
  • 打赏
  • 举报
回复
其实这是变量的作用域的问题吧?

看你实际的业务。

110,539

社区成员

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

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

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