草庐IT

c# - 什么时候应该使用字段而不是属性?

谁能清楚地说明在类设计中何时使用字段以及何时使用属性?考虑:publicstringName;或者:privatestring_Name;publicstringName{get{return_Name;}set{_Name=value;}}我意识到第二种方法更合适和灵活,所以这就是我通常尝试使用的方法。但为什么我看到人们使用第一种方法呢?他们只是懒惰,还是在某些特定情况下这是正确的选择?这只是一个偏好问题吗? 最佳答案 在C#3.0中,您实际上可以编写:publicstringName{get;set;}这让你既得体又懒惰。一般来

c# - LinkedList 和 ArrayList 有什么区别,什么时候使用哪一个?

LinkedList和ArrayList有什么区别?我怎么知道什么时候使用哪个? 最佳答案 区别在于用于存储对象的内部数据结构。ArrayList将使用系统数组(如Object[])并在需要时调整它的大小。另一方面,LinkedList将使用包含数据的对象和指向列表中下一个和上一个对象的指针。由于内部表示的这种差异,不同的操作将具有不同的算法复杂度。 关于c#-LinkedList和ArrayList有什么区别,什么时候使用哪一个?,我们在StackOverflow上找到一个类似的问题:

c# - 什么时候调用 ConvertBack 方法?

我知道当要显示数据时,会调用Convert()方法对数据进行转换,然后显示转换后的数据。我想知道ConvertBack()方法何时被调用?它的目的是什么?我有一个DataGrid,它的ItemSource绑定(bind)到某个集合,并且我已经为收藏。当我创建IsReadOnly="True"(在DataGrid中)时,如果我双击单元格(对于IValueConverter实现)然后改变焦点。但是当我创建IsReadOnly="False"时,无论我对DataGrid及其单元格做什么,都不会调用ConvertBack方法。请解释DataGrid单元格的这种行为和IValueConverte

c# - WPF 什么时候订阅 PropertyChanged 事件?

我有一个ClassA和一个ObservableCollection属性,它实现了INotifyPropertyChanged接口(interface)在我的窗口代码隐藏中,我声明了一个ClassA变量,并在Main()方法中对其进行了初始化。我希望variable.PropertyChanged会有一个WPF事件连接到它,但显然PropertyChanged事件仍然为空 最佳答案 当您绑定(bind)到您的对象时,WPF将订阅PropertyChanged事件。这是数据绑定(bind)工作的核心方式。它实际上是通过PropertyC

c# - 可以给我一个例子,什么时候应该使用 UIElement.UpdateLayout()?

我正在读这个UpdateLayout()method在MSDN中。它说:Ensuresthatallvisualchildelementsofthiselementareproperlyupdatedforlayout.但我不明白布局未正确更新是什么意思。我已经使用Silverlight/WPF一年多了,但我仍然没有使用过这种方法。那么有人可以给我一个需要使用这种方法的例子吗?这样我才能真正了解它的作用以及何时应该使用它? 最佳答案 如果您需要一个控件来立即完成它的布局,您可能想要调用它,以便您可以基于它做一些事情。例如,如果您想根

c# - Socket.Receive 什么时候返回数据?

又是初学者问题:有点像我不久前提出的问题的跟进。我正在尝试理解这个同步套接字教程http://msdn.microsoft.com/en-us/library/6y0e13d3.aspx,尤其是下面代码中的一行。问题:我想确保我正确理解程序流程。什么时候handler.Receive(bytes)返回?当它“溢出”并接收到超过1024字节时,它是否返回并存储接收到的字节数在intbytesRec**中?**如果是这样的话,这听起来可能很愚蠢,如果在*data*变量中存储1024个字节而不是监听更多字节时到达更多字节会发生什么那可能会在那个时候到达?还是我不应该担心,让.net来处理?S

c# - Db Connection.State Change 什么时候调用?

我有以下代码:classProgram{staticvoidMain(){varconnection=newSqlConnection("myConnectionString");connection.Open();connection.StateChange+=HandleSqlConnectionDrop;Console.WriteLine("Hi");Console.ReadLine();}privatestaticvoidHandleSqlConnectionDrop(objectconnection,StateChangeEventArgsargs){Console.Writ

c# - Generic HttpHandler(一个 ashx,IHttpHandler 接口(interface))什么时候可以重用?

我一直在使用Ashx和jQuery。我读过msdn,我说的是IHttpHandler.IsReusable属性。GetsavalueindicatingwhetheranotherrequestcanusetheIHttpHandlerinstance.“IHttpHandler实例。”是什么意思?他们是不是试图让它变得像static一样供所有人查看和使用?它是否可以被相同的what重复使用?(查询字符串、cookie等?)如果我这样写:publicclassMyHttpHandler:IHttpHandler{publicvoidProcessRequest(HttpContextc

c# - 什么时候需要在 C# 中通过 COM 查询的接口(interface)上调用 Marshal.ReleaseComObject

我一直在使用一些DirectShow接口(interface)来使用C#和DirectShow.Net播放数字电视(DVB-T).我最近遇到运行时错误COMobjectthathasbeenseparatedfromitsunderlyingRCWcannotbeused.此错误发生在以下行中:_guideData=_transportInformationFilterasIGuideData;_transportInformationFilter属于IBaseFilter类型,这是一个先前通过DirectShow.Net实用程序函数分配的COM对象。我假设错误是由于_transpor

c# - 什么时候进行提前 (AOT) 编译?

我正在为Web应用程序使用C#.NET。我读过JIT编译发生在运行时,这意味着(如果我错了请纠正我)编译将在请求到达IIS时发生。在解决方案的构建阶段使用csc.exe进行另一次编译,使用MSBuild将高级代码转换为CIL。如果没有JIT而我们想使用AOT,那么AOT适合所有这一切吗?我的问题是,在从构建代码到第一个请求的整个阶段中,AOT编译发生在什么时候?(平台/框架无关紧要) 最佳答案 经过大量谷歌搜索和研究,我发现我对编译器的基本理解是错误的。编译器是将语言X的程序转换为语言Y的程序。语言Y可以是任何东西(native机器