几个C#技巧

几个C#技巧(一)

作者:罗会涛

技巧1

AppDomain.CurrentDomain.BaseDirectory 相当于App.Path

技巧2

如果需要在字符串末尾增加回车换行,

应该是:s = s + "\r\n";而不是: s = s + "\n\r"; 次序将影响s在TextBox中的显示。

技巧3

在C#中,有一些提供静态方法的类,这些类可以不用实例化直接调用其方法,就像全局函数一样。这样的类有:Application、File、MessageBox、DialogResult等等。比如:b=File.Exists(FilePath);

技巧4

C#中没有VB那样的Beep语句。

技巧5

不再是ListBox.Style,而是另外一种Control: CheckedListBox

巧6

DataType of DataColumn

DataColumn dcID;
dcID.DataType=System.Type.GetType("System.String");

几个C#技巧(二)

技巧1

字符串的.Trim()方法可以将空格和回车一并去掉。

技巧2

除了代码编辑窗口中的字体之外,Solution Explorer等窗格中的字体也可以通过OptionsFonts and Colors进行设置,方法是选择Show Settings for为Dialogs and Tool Windows,默认的宋体9号不如Verdana 8号字体美观。

技巧3

连接两个字符串的操作,在C#中是+。但是要注意:不同类型的数据不能直接用+串,事先应使用.ToString()转换为字符串,如: dt.Rows[0].ItemArray[0].ToString() + dt.Rows[0].ItemArray[01]

技巧4

Queued Components这种部件支持异步调用,客户端不用等服务器马上响应,也许可以用来实现Run MRP这样的操作:远程发送“开始运行”命令,完毕用另外一种方式通知。

技巧5

不用定义对象就可调用的方法,可以用Modules来实现。

技巧6

Default OK & Cancel Button:对应于VB Form中的CommandButton.Default和.Cancel属性,WinForm中可在Form(而非Button)的属性中设置AcceptButton和CancelButton。

技巧7

Unload me in C#
This.Close
关于作者:
作者是GrapeCity开发人员。

几个C#技巧(三)

作者:罗会涛,杨波

技巧1

正向查找: i=s.indexOf(substr[,startindex]);

逆向查找: i=s.lastIndexOf(substr[,startindex]);

注意大小写:last不是Last

技巧2

KeyPress事件中判断KeyCode if(e.KeyChar == (char)13) e.Handled=true;

或者

if(e.KeyChar == System.Windows.Forms.Keys.Return)
{
    ...
    e.Handled=true;
}

技巧3

KeyPress事件中一般会处理参数e中键值,处理完毕,应:e.Handled = true;否则可能会有beep一声。原来VB中将键值设为0的办法已经行不通了。

技巧4

Numeric Format Strings

double d = 123.456;
string s = d.ToString("#,##0.00;(#,##0.00)");

技巧5

如果觉得VSS与IDE绑定比较好,而想要在细节操作方面更加方便,可以在Tools/Options/Source Control选项中设定,例如在CheckIn时维持CheckOut状态等。

如果觉得VSS与IDE绑定不太好,想要解开绑定,也很简单:File/Source Control/Change Source Control Unbind几次就行了。

技巧6

定义一个对象变量时,建议先给一个null初值,例如:XmlDocument a = null;否则,在 finally 等子句中可能编译出错,错误信息是“使用了unassigned的变量”。

关于作者:
罗会涛是GrapeCity公司的技术总监。曾与他人合作著有《精通MS SQL Server 7.0》和《会计电算化实用技术》等书,在《计算机世界报》发表文章数篇。并曾在两届微软DevDays技术大会上授课。
杨波是GrapeCity公司工具开发部主力。从事component软件的开发。

几个C#技巧(四)

技巧1

有一个类似VB6的OpenFileDialog控件,不过专门用于FileOpen操作,不再跟Font等对话框混在一起。主要属性:MultiSelect,ShowReadOnly,ReadOnlyChecked,Filter, 例子:

// Open a file open dailog
dlgFile.Filter = "XML files(*.xml)|*.xml|All files (*.*)|*.*";
dlgFile.ShowDialog();
strFilePath=dlgFile.FileName;
if (strFilePath=="" ) return;

技巧2

Try
{
    Cursor.Current=Cursors.WaitCursor;
}
Catch
{
}
Finally
{
    Cursor.Current=Cursors.Default;
}

技巧3

// DoEvents in C#
Application.DoEvents();

技巧4

// Replace method of string
strTmp.Replace(old,new);

技巧5

// Set Nothing in C#
obj = null;

技巧6

// C# Array declaration
int[] varname;
Contributors: FHL