小编Pat*_*her的帖子

何时应该将方法设为私有?

很多时候我不确定某个特定方法是否应该是私有的.例如,我正在建立一个班级,负责生成报告.这个类有一个buildReport方法和几个收集buildReport必要数据的方法.

// single public method
// uses a set of helper methods
public buildReport()

// helper methods
private avgSurveyTime()
private fetchVendors()
private fetchSendCounts()
private ...
Run Code Online (Sandbox Code Playgroud)

我在争论是否应该公开这些辅助方法.我此刻打算在外面打电话的唯一方法是buildReport().但是,仅获取供应商列表fetchVendors()等可能会很有用.

我看到两种思想流派:你总能尽可能少地暴露出来.(在这种情况下,我的许多类只有一个公共方法)或者你可以公开所有可能对类的用户有用的东西.

是否有一个很好的经验法则用于决定何时应该公开/私有方法?

oop

43
推荐指数
4
解决办法
1617
查看次数

有没有办法在基本的T4模板中有功能?

通过基本的 T4模板,我的意思是不使用T4 Toolkit或任何加载项.

我的T4有点复杂,但我现在想保持自足.有没有办法在T4模板中有功能而不引用外部组件?

.net t4 code-generation

37
推荐指数
1
解决办法
1万
查看次数

一次往返执行多个SQL命令

我正在构建一个应用程序,我想将多个查询批处理到一个数据库的往返.例如,假设单个页面需要显示用户列表,组列表和权限列表.

所以我存储了procs(或者只是简单的sql命令,比如"select*from Users"),我想执行其中的三个.但是,为了填充这一页,我必须进行3次往返.

现在我可以编写单个存储过程("getUsersTeamsAndPermissions")或执行单个SQL命令"select*from Users; exec getTeams; select*from Permissions".

但我想知道是否有更好的方法来指定在一次往返中进行3次操作.好处包括更容易进行单元测试,并允许数据库引擎将查询并行化.

我正在使用C#3.5和SQL Server 2008.

.net c# sql-server ado.net data-access

30
推荐指数
2
解决办法
5万
查看次数

VS2010 Ultimate中缺少测试设置模板

我正在尝试将测试设置文件添加到VS2010中的单元测试项目中.所有网站似乎只是简单地说"转到添加新项目>已安装的模板>测试设置".但是,我的"已安装模板"中没有"测试设置"作为选项(在线搜索它们也不会显示任何结果).

有人能指出我正确的方向,我需要做什么吗?

.net c# unit-testing visual-studio-2010

25
推荐指数
1
解决办法
1万
查看次数

使用XDocument按属性查找元素

此查询似乎有效,但我有0结果.

IEnumerable<XElement> users =
            (from el in XMLDoc.Elements("Users")
             where (string)el.Attribute("GUID") == userGUID.ToString()
             select el);
Run Code Online (Sandbox Code Playgroud)

我的XML如下:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Users>
  <User GUID="68327fe2-d6f0-403b-a7b6-51860fbf0b2f">
    <Key ID="F7000012ECEAD101">
      ...
    </Key>
  </User>

</Users>
Run Code Online (Sandbox Code Playgroud)

你有什么线索可以解释这个问题吗?

c# xml linq linq-to-xml

24
推荐指数
2
解决办法
6万
查看次数

23
推荐指数
3
解决办法
3万
查看次数

你把第三方图书馆放在哪里?

我有一堆.dll装配,比如HtmlAgilityPackMoreLinq.我应该把这些文件放在哪里?我经常把它扔到我Projects文件夹的某个地方,但后来我总是在为他们挖掘.是否有标准的地方放置它们?

.net c# visual-studio

23
推荐指数
3
解决办法
9996
查看次数

jQuery $ .ajax()函数的错误消息源

在失败的情况下,代码类似于:

error: function(msg)
Run Code Online (Sandbox Code Playgroud)

msg来自哪里?

编辑:

我正在使用此函数($ ajax)来调用WEB服务.因此,如果投票给谁的人可以向我解释msg来自哪里会很棒!我是否在Web服务中设置它?如果是这样,怎么样?请不要复制和粘贴定义.

ajax error-handling jquery

21
推荐指数
3
解决办法
3万
查看次数

围绕多个选项卡窗口共享的ASP.NET会话

我在第一页的asp.net会话中存储了一些值.在下一页上,正在读取此会话值.但是,如果打开了多个选项卡并且有多个页面1->第2页导航,则会话中存储的值会混淆,因为会话在浏览器选项卡之间共享.

我想知道这有什么选择:

  1. 查询字符串:使用查询字符串在页面之间传递值,我不想采用这种方法,因为第1页上可能有多个锚标记链接到第2页,我不能重写每个标记的URL,因为它们是动态的.

  2. 饼干???内存中的cookie也可以在浏览器选项卡中共享,与会话cookie,rite相同?

还有其他选择吗?

PS:第1页到第2页不是表单提交.

.net asp.net

14
推荐指数
2
解决办法
3万
查看次数

是否有任何函数在您的应用程序中随时加载任何页面?

我希望能够在应用程序中加载任何页面的任何时候运行脚本.有什么地方我可以简单地添加这个吗?或者我是否必须在每个页面加载中添加代码?

.net c# asp.net page-lifecycle

13
推荐指数
2
解决办法
5679
查看次数