草庐IT

ref_location

全部标签

c# - 您什么时候会使用 Common Service Locator?

我一直在查看CommonServiceLocator作为一种抽象IoC容器的方式,但我注意到有些人强烈反对这种类型。人们是否建议永远不要使用它?一直在用?或者有时使用它?如果有时,那么你会在什么情况下使用它,在什么情况下你不会使用它。 最佳答案 假设您正在编写供第3方开发人员使用的库代码。您的代码需要能够创建这些开发人员提供的服务对象。但是,您不知道每个调用者将使用哪个IoC容器。CommonServiceLocator可让您处理上述问题,而无需将给定的IoC强加给您的用户。在您的库本身中,您可能希望在IoC中注册您自己的类,现在它

C# ref 是像 C/C++ 中的指针还是 C++ 中的引用?

我正在使用ref并且没有清楚地理解“它是像C/C++中的指针还是像C++中的引用?”为什么我问了你一时想的这么弱的问题?因为,当我阅读C#/.NET书籍、msdn或与C#开发人员交谈时,我会因以下原因而感到困惑:C#开发人员建议不要在函数的参数中使用ref,例如...(refTypesomeObject)对他们来说闻起来不好,他们建议...(TypesomeObject),我真的不清楚这个建议。我听到的原因:最好使用对象的副本,然后将其用作返回值,不要通过引用破坏内存等......我经常听到有关DB连接对象的解释。根据我的普通C/C++经验,我真的不明白为什么在C#中使用引用是一件坏事

c# - 为什么迭代器方法不能采用 'ref' 或 'out' 参数?

我今天早些时候试过这个:publicinterfaceIFoo{IEnumerableGetItems_A(refintsomethingElse);IEnumerableGetItems_B(refintsomethingElse);}publicclassBar:IFoo{publicIEnumerableGetItems_A(refintsomethingElse){//Ok...}publicIEnumerableGetItems_B(refintsomethingElse){yieldreturn7;//CS1623:Iteratorscannothavereforoutpa

c# - .NET/Windows 窗体 : remember windows size and location

我有一个带有普通窗口的Windows窗体应用程序。现在,当我关闭应用程序并重新启动它时,我希望主窗口出现在屏幕上的相同位置,并且与关闭时的大小相同。在Windows窗体中是否有一种简单的方法来记住屏幕位置和窗口大小(如果可能的话还有窗口状态),还是所有的事情都必须手动完成? 最佳答案 如果您将此代码添加到您的FormClosing事件处理程序中:if(WindowState==FormWindowState.Maximized){Properties.Settings.Default.Location=RestoreBounds.L

c# - SQL Express 连接字符串 : mdf file location relative to application location

我正在使用SQLExpress数据库作为c#单元测试项目的一部分。我的数据库位于此处:./Databases/MyUnitTestDB.mdf我想在app.config中使用相对路径或变量,而不是将连接字符串定义为:AttachDbFilename=C:\blah\blah\blah\yea\yea\yea\MyApplication\Databases\MyUnitTestDB.mdf我看到了|DataDirectory|的使用,但我认为这仅适用于Web应用程序是否正确?我想在应用程序配置文件中控制它,因为在生产中应用程序使用托管的sql数据库。 最佳答案

C#属性和ref参数,为什么不加糖?

我刚刚在使用C#时遇到了这个错误消息Apropertyorindexermaynotbepassedasanoutorrefparameter我知道是什么原因造成的,并快速解决了创建一个正确类型的局部变量,用它作为out/ref参数调用函数,然后将其分配回属性:RefFn(refobj.prop);变成{vart=obj.prop;RefFn(reft);obj.prop=t;}很明显,如果属性在当前上下文中不支持get和set,这将失败。为什么C#不直接为我做这件事?我能想到的唯一可能导致问题的情况是:线程异常(exception)情况对于线程,转换会影响写入发生的时间(在函数调用之

c# - 属性或索引器不能作为 out 或 ref 参数传递

我收到上述错误并且无法解决。我用谷歌搜索了一下,但无法摆脱它。场景:我有一个BudgetAllocate类,它的属性是budget,它是double类型。在我的dataAccessLayer中,在我的一个类(class)中,我正在尝试这样做:double.TryParse(objReader[i].ToString(),outbd.Budget);这是抛出这个错误:Propertyorindexermaynotbepassedasanoutorrefparameteratcompiletime.我什至试过这个:double.TryParse(objReader[i].ToString(

c# - 引用分配是原子的,那么为什么需要 Interlocked.Exchange(ref Object, Object) 呢?

在我的多线程asmxWeb服务中,我有一个我自己的类型SystemData的类字段_allData,它由几个List组成和Dictionary标记为volatile.系统数据(_allData)偶尔会刷新一次,我通过创建另一个名为newData的对象来实现。并用新数据填充它的数据结构。完成后,我只需分配privatestaticvolatileSystemData_allDatapublicstaticboolLoadAllSystemData(){SystemDatanewData=newSystemData();/*fillnewDatawithup-to-datedata*/..

c# - C# 中的引用类型变量 "ref"有什么用?

我知道如果我传递一个值类型(int、struct等)作为参数(没有ref关键字),该变量的副本被传递给该方法,但如果我使用ref关键字,传递的是对该变量的引用,而不是新的引用。但是对于引用类型,比如类,即使没有ref关键字,引用也会传递给方法,而不是副本。那么ref关键字和引用类型有什么用呢?举个例子:varx=newFoo();以下有什么区别?voidBar(Fooy){y.Name="2";}和voidBar(refFooy){y.Name="2";} 最佳答案 您可以使用y更改foo指向的内容:Foofoo=newFoo("1

c# - 何时使用 in vs ref vs out

前几天有人问我什么时候应该使用参数关键字out而不是ref。虽然我(我认为)理解ref和out关键字(一直是askedbefore)之间的区别,但最好的解释似乎是ref==in和out,我应该始终使用out而不是的一些(假设或代码)示例引用。既然ref更通用,为什么还要使用out?它只是语法糖吗? 最佳答案 除非你需要ref,否则你应该使用out。当数据需要编码时,它会产生很大的不同,例如到另一个过程,这可能是昂贵的。因此,您希望避免在方法未使用初始值时编码初始值。除此之外,它还向声明或调用的读者显示初始值是相关的(并可能保留)还是