是否有任何指导或最佳实践,Dispose()当他们被传递到另一个对象的方法或构造器时,谁应该调用一次性对象?
以下是我的意思的几个例子.
IDisposable对象被传递给一个方法(它应该在它完成后处理它吗?):
public void DoStuff(IDisposable disposableObj)
{
// Do something with disposableObj
CalculateSomething(disposableObj)
disposableObj.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
IDisposable对象被传递给一个方法并保留一个引用(它应该在处理时处置它MyClass吗?):
public class MyClass : IDisposable
{
private IDisposable _disposableObj = null;
public void DoStuff(IDisposable disposableObj)
{
_disposableObj = disposableObj;
}
public void Dispose()
{
_disposableObj.Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
我目前认为在第一个例子中,呼叫者的DoStuff(),因为它可能创建的对象应该处理的对象.但是在第二个例子中,感觉MyClass应该处理对象,因为它保留了对象的引用.这个问题是调用类可能不知道MyClass已保留引用,因此可能决定在MyClass完成使用之前处置该对象.这种情况是否有任何标准规则?如果存在,当一次性对象传递给构造函数时它们是否不同?
我正在尝试找到过去的拉取请求,以查看在特定问题上做出了哪些评论/操作.
我知道文件和更改,所以我可以通过查看责备视图来进行引入它的提交.但是我找不到一种方法来查看第一次将该提交推送到分支的pull请求.
有没有办法做到这一点?或者我是否必须沿着记忆通道行进并手动浏览过去的拉动请求?
给定以下正则表达式正则表达式(从我实际上想使用的正则表达式简化):
(?<=\s|\n)(".*?")
Run Code Online (Sandbox Code Playgroud)
和以下替换表达式:
_T($1)
Run Code Online (Sandbox Code Playgroud)
Visual Studio 2013将找到每个匹配的字符串,但是在替换时,将替换与后续匹配相对应的字符串,因此将替换第二个字符串。
此外,Replace All它不起作用,并说它找不到任何匹配的文本(即使a Find All会找到相关的字符串)。
这是Visual Studio中的错误,还是我做错了什么?
演示:

我正在实现一个ITracker看起来像这样的接口:
public interface ITracker
{
void Track(ITrackerEvent trackerEvent);
}
Run Code Online (Sandbox Code Playgroud)
我最初创建了这个包装Mixpanel.NET的接口的实现.然后我创建了另一个包装Application Insights的程序.但是,Application Insights需要Flush()将数据发送到服务器.
我不想仅仅因为其中一个实现需要一个方法而污染ITracker接口Flush().它会感觉像是一个漏洞的抽象.
但是,我需要在某个时候调用此方法(可能在应用程序关闭时)并且不希望每次Track调用时都这样做.
当Tracker在会话结束时被垃圾收集时,是否可以调用方法?这甚至是一个好方法吗?
我觉得我在这里错过了一招!
我们有一个引导程序,可以检查并安装.NET和法语.NET语言包.
我们只是更新它以安装.NET 4.6.1.但是,在Windows 10上安装法语语言包时,我们收到一条错误消息(法语),说明语言包已经安装:
Le module linguistique de .NET Framework 4.6.1(Français)ne对应的la languedusystèmed'开发Windowsinstallésurvotre ordinateur.Modifiezvosparamètreslinguistiquesou installez le module linguistique适用于ausystèmed'prinuxinstalléavantd'installer ce package.
Le module linguistique de .NET Framework 4.6.1(Français)estdéjàinstallésurvotre ordinateur.Pour l'activer,installez le module linguistique Corresponantausystèmed'peglationinstallé.
谷歌翻译将其翻译为:
.NET Framework 4.6.1(法语)的语言包与计算机上安装的Windows操作系统语言不对应.在安装此软件包之前,请更改语言设置或安装适用于所安装操作系统的语言包.
您的计算机上已安装.NET Framework 4.6.1(法语)的语言包.要激活,请安装与安装的操作系统对应的语言包.
我们已经尝试过.NET 4.5.1法语语言包,它会出现类似的错误.它在Windows 7上安装得很好.
Windows 10中的更改意味着我们收到此错误消息?这似乎意味着法语语言包已作为Windows 10的一部分安装.如果是这样,那么拥有Windows 10语言包安装程序有什么意义呢?
任何帮助,将不胜感激.
我正在尝试为WiX和Burn创建自定义UI.除了一件事,我差不多完成了.在升级的安装结束时(对于exaple 1.0.0到1.1.0),先前版本的卸载开始,并显示其UI.我的问题是如何处理这个问题,以便用户最终看不到卸载UI.
.net ×3
c# ×2
bootstrapper ×1
burn ×1
git ×1
github ×1
idisposable ×1
regex ×1
replace ×1
upgrade ×1
windows ×1
windows-10 ×1
wix ×1