小编sna*_*arf的帖子

不好的做法?非正式使用c#的using语句

C#具有该using语句,特别是对于IDisposable对象.据推测,using语句中指定的任何对象都将拥有某种应该确定性释放的资源.

然而,在我看来,编程中有许多设计具有单一,明确的开始和结束,但缺乏内在的语言支持.该using构造提供了使用代码编辑器的内置特征的机会,至少清楚且自然地突出了这种设计或操作的范围.

我想到的是经常以a BeginXXX()EndXXX()方法开始的那种操作,尽管有很多不同的风格,例如涉及"开始"和"连接"的异步代码执行.

拿这个天真的例子吧.

webDataOperation.Start();
GetContentFromHardDrive();
webDataOperation.Join();
// Perform operation that requires data from both sources
Run Code Online (Sandbox Code Playgroud)

相反,如果Start方法返回了一个IDisposable.Dispose方法执行连接操作的对象,该怎么办?

using(webDataOperation.Start()) {
    GetContentFromHardDrive();
}
// Perform operation that requires data from both sources
Run Code Online (Sandbox Code Playgroud)

或者,更好的是,我特别想到的是:我有一个对象,它具有高度专业化的图形blitting,并且有一个Begin()End()方法(一个设计也出现在DirectX和XNA中).代替...

using(blitter.BlitOperation()) {
    // Do work
}
// Use result
Run Code Online (Sandbox Code Playgroud)

它似乎更自然,更易读,但它是不可取的,因为它使用IDisposable界面和using声明用于非预期的目的?换句话说,这是否与以非直观的方式运算符操作符相同

c# using-statement

19
推荐指数
4
解决办法
1992
查看次数

RichTextBox中RTF文件中的超链接断开

我正在使用a RichTextBox来显示RTF文件,其中包含一个超链接.链接文本不是URL(目标有效的URL).RTF是使用Word创建的.Word和写字板都能正确识别链接(写字板不会启动链接,但会显示相应的手形光标).

当我将RTF加载到RichTextBox链接时,链接显示格式正确(蓝色和下划线),但不是表现得像链接,当光标在链接上移动时它仍然是工字梁,LinkClicked事件不会触发,它实际显示链接后尖括号之间的目标(这似乎不正确).由于链接文本不是URL,DetectUrls因此在这里没有帮助.

RichTextBox没有正确处理这些链接的原因,或者是一种使它们按预期工作的方法?

这是代码.

TipView.Rtf = tips[tipIndex];
// I've also tried TipView.LoadFile, with identical result
Run Code Online (Sandbox Code Playgroud)

要重现此问题,请使用Word(我正在使用2000)创建一个RTF文档,其中包含一个文本不是URL但是以有效URL为目标的链接,并以编程方式将.rtf文件加载到RichTextBox(我使用的是.NET 2.0)在C#Express 2008中.

.net c# rtf richtextbox winforms

7
推荐指数
1
解决办法
3169
查看次数

更改ToolStripMenuItem的大小

我是自定义绘制一个菜单项MenuStrip.我遇到的问题是菜单项坚持根据文本调整自身大小,这不是我想要的(没有文本).我可以设置AutoSize为false并明确指定大小,但是包含的menu(ToolStripDropDown)仍然根据文本调整自身大小,这会导致它太小而无法包含整个菜单项.

有没有直接的方法来设置菜单项的大小?

menustrip ownerdrawn winforms

4
推荐指数
2
解决办法
9930
查看次数

C#自动属性

C#3.0的自动属性是否完全取代了归档?

我的意思是,我可以直接使用该属性而不是归档作为属性作为私人支持字段.(对不起,我只是这样理解).

int a;

public int A
{
  get;set;
 }
Run Code Online (Sandbox Code Playgroud)

c# automatic-properties

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