internal 和private 有何区别?using 如何使用?有何作用? 见标题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 • public — 对所有类可见• protected —仅从派生类中可见• private — 仅在给定的类中可见• internal — 仅在相同的程序集中可见• protected internal — 仅对当前的程序集或从包含类中派生的类型可见 using 语句获取一个或多个资源,执行一个语句,然后处置该资源。 using-statement:(using 语句:) using ( resource-acquisition ) embedded-statement(using ( 资源获取 ) 嵌入语句) resource-acquisition:(资源获取:) local-variable-declaration(局部变量声明)expression(表达式) 一个资源是实现了 System.IDisposable 的类或结构,它只包含一个名为 Dispose 的不带参数的方法。正在使用资源的代码可以调用 Dispose 以表明不再需要该资源。如果不调用 Dispose,则最终将因为垃圾回收而对该资源进行自动处置。如果资源获取的形式是局部变量声明,那么此局部变量声明的类型必须为 System.IDisposable 或是可以隐式转换为 System.IDisposable 的类型。如果资源获取的形式是表达式,那么此表达式必须是 System.IDisposable 类型或是可以隐式转换为 System.IDisposable 的类型。在资源获取中声明的局部变量必须是只读的,且必须包含一个初始值设定项。如果嵌入语句试图修改这些局部变量(通过赋值或 ++ 和 -- 运算符)或将它们作为 ref 或 out 参数传递,则将发生编译时错误。using 语句被翻译成三个部分:获取、使用和处置。资源的使用部分被隐式封闭在一个含有 finally 子句的 try 语句中。此 finally 子句用于处置资源。如果所获取资源是 null,则不会对 Dispose 进行调用,也不会引发任何异常。下列形式的 using 语句using (ResourceType resource = expression) statement对应于下列两个可能的扩展中的一个。当 ResourceType 是值类型时,扩展为{ ResourceType resource = expression; try { statement; } finally { ((IDisposable)resource).Dispose(); }}否则,当 ResourceType 是引用类型时,扩展为{ ResourceType resource = expression; try { statement; } finally { if (resource != null) ((IDisposable)resource).Dispose(); }}在上面任何一种扩展中,resource 变量在嵌入语句中都是只读的。下列形式的 using 语句using (expression) statement同样具有上述两种可能的扩展,但在这种情况下 ResourceType 隐式地为 expression 的编译时类型,而 resource 变量在嵌入语句中既不可访问,也不可见。如果资源获取采用局部变量声明的形式,则有可能获取给定类型的多个资源。下列形式的 using 语句using (ResourceType r1 = e1, r2 = e2, ..., rN = eN) statement完全等效于嵌套 using 语句的序列:using (ResourceType r1 = e1) using (ResourceType r2 = e2) ... using (ResourceType rN = eN) statement下面的示例创建一个名为 log.txt 的文件并将两行文本写入该文件。然后该示例打开这个文件进行读取,并将它所包含的文本行复制到控制台。using System;using System.IO;class Test{ static void Main() { using (TextWriter w = File.CreateText("log.txt")) { w.WriteLine("This is line one"); w.WriteLine("This is line two"); } using (TextReader r = File.OpenText("log.txt")) { string s; while ((s = r.ReadLine()) != null) { Console.WriteLine(s); } } }}由于 TextWriter 和 TextReader 类实现了 IDisposable 接口,因此该示例可以使用 using 语句以确保所涉及的文件在写入或读取操作后正确关闭。 http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpguide/html/cpconassemblies.asp 请问:C#中事件处理函数与主程序是在同一进程内吗? axWebBrowser获取值,程序竟然断掉???????各位有用过的帮来看看。谢谢!!!! 新手 hook的学习 求助:用C#显示数据库中的数据 怎样使用WINAPI的函数指针? ******** 问一个小问题,麻烦会的 朋友说一下。 string 字符串转 int. [求助]自编C#Windows窗体应用程序背景设为图片后全透明了 如此简单的问题错在那里了? 如何延迟加载非托管DLL 那位仁兄能提供给俺一个报表注册码,谢谢了 创建一个类多个Form调用 who can help me, how to progame it???
• protected —仅从派生类中可见
• private — 仅在给定的类中可见
• internal — 仅在相同的程序集中可见
• protected internal — 仅对当前的程序集或从包含类中派生的类型可见
using ( resource-acquisition ) embedded-statement(using ( 资源获取 ) 嵌入语句)
resource-acquisition:(资源获取:)
local-variable-declaration(局部变量声明)
expression(表达式)
一个资源是实现了 System.IDisposable 的类或结构,它只包含一个名为 Dispose 的不带参数的方法。正在使用资源的代码可以调用 Dispose 以表明不再需要该资源。如果不调用 Dispose,则最终将因为垃圾回收而对该资源进行自动处置。如果资源获取的形式是局部变量声明,那么此局部变量声明的类型必须为 System.IDisposable 或是可以隐式转换为 System.IDisposable 的类型。如果资源获取的形式是表达式,那么此表达式必须是 System.IDisposable 类型或是可以隐式转换为 System.IDisposable 的类型。在资源获取中声明的局部变量必须是只读的,且必须包含一个初始值设定项。如果嵌入语句试图修改这些局部变量(通过赋值或 ++ 和 -- 运算符)或将它们作为 ref 或 out 参数传递,则将发生编译时错误。using 语句被翻译成三个部分:获取、使用和处置。资源的使用部分被隐式封闭在一个含有 finally 子句的 try 语句中。此 finally 子句用于处置资源。如果所获取资源是 null,则不会对 Dispose 进行调用,也不会引发任何异常。下列形式的 using 语句using (ResourceType resource = expression) statement
对应于下列两个可能的扩展中的一个。当 ResourceType 是值类型时,扩展为{
ResourceType resource = expression;
try {
statement;
}
finally {
((IDisposable)resource).Dispose();
}
}
否则,当 ResourceType 是引用类型时,扩展为{
ResourceType resource = expression;
try {
statement;
}
finally {
if (resource != null) ((IDisposable)resource).Dispose();
}
}
在上面任何一种扩展中,resource 变量在嵌入语句中都是只读的。下列形式的 using 语句using (expression) statement
同样具有上述两种可能的扩展,但在这种情况下 ResourceType 隐式地为 expression 的编译时类型,而 resource 变量在嵌入语句中既不可访问,也不可见。如果资源获取采用局部变量声明的形式,则有可能获取给定类型的多个资源。下列形式的 using 语句using (ResourceType r1 = e1, r2 = e2, ..., rN = eN) statement
完全等效于嵌套 using 语句的序列:using (ResourceType r1 = e1)
using (ResourceType r2 = e2)
...
using (ResourceType rN = eN)
statement
下面的示例创建一个名为 log.txt 的文件并将两行文本写入该文件。然后该示例打开这个文件进行读取,并将它所包含的文本行复制到控制台。using System;
using System.IO;
class Test
{
static void Main() {
using (TextWriter w = File.CreateText("log.txt")) {
w.WriteLine("This is line one");
w.WriteLine("This is line two");
}
using (TextReader r = File.OpenText("log.txt")) {
string s;
while ((s = r.ReadLine()) != null) {
Console.WriteLine(s);
}
}
}
}
由于 TextWriter 和 TextReader 类实现了 IDisposable 接口,因此该示例可以使用 using 语句以确保所涉及的文件在写入或读取操作后正确关闭。