草庐IT

static和final关键字

全部标签

c# - C# 中的命名参数和 params 关键字

这个问题在这里已经有了答案:Howtosetnamedargumentforstring.Format?(2个答案)关闭9年前。我有一个C#方法,它带有使用params关键字声明的可变长度参数列表:publicvoidVariableLengthParameterFunction(objectfirstParam,paramsobject[]secondParam)调用方法时有没有使用命名参数的方法?

c# - 使用关键字占用更少的空间?

如果我使用以下内容,它会占用更少的资源并且清理速度会更快,这是真的吗?using(TextReaderreadLogs=File.OpenText("C:\\FlashAuto\\Temp\\log.txt")){//mystuff}相比于:TextReaderreadLogs=newStreamReader("C:\\FlashAuto\\Temp\\log.txt");//mystuffreadLogs.Close();readLogs.Dispose(); 最佳答案 这些示例之间的区别不是性能,而是异常安全性。using在后台

c# - 字典枚举关键性能

我担心使用枚举作为键的通用字典。如下页所述,对键使用枚举将分配内存:http://blogs.msdn.com/b/shawnhar/archive/2007/07/02/twin-paths-to-garbage-collector-nirvana.aspx我已经测试并确认了该行为,它在我的项目中引起了问题。为了可读性,我相信对键使用枚举非常有用,对我来说最佳解决方案是编写一个实现IDictionary的类。,这将在内部使用整数作为键。原因是我不想更改所有现有词典以使用整数作为键,并进行隐式转换。这将是最好的性能明智的做法,但它会在一开始给我做很多工作,并且会降低可读性。所以我尝试了

c# - 不支持关键字 : 'provider' . 打开 SqlConnection

我不知道为什么会出现这个错误,我什么都试过了。我想将我的webForm连接到数据库.accdb当我使用using(){}时出现错误“不支持关键字:‘provider’”这是代码:web.configWebForm1privatestaticstringconDB=ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;protectedvoidPage_Load(objectsender,EventArgse){using(SqlConnectioncon=newSqlConnection(

c# - 为什么 C# 设计者要为 'using' 关键字附加三种不同的含义?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭12年前。using关键字具有三种不同的含义:类型/命名空间别名命名空间导入确保调用Dispose的语法糖文档将前两个定义称为指令(我猜这意味着它们本质上是预处理),而最后一个是语句。尽管它们在语法上有所区别,但为什么语言开发人员会通过附加三种不同的含义来使关键字的语义复杂化?例如,(免责声明:在我的脑海中,肯定有更好的例子)为什么不添加像alias和import

c# - C#关键字fixed/unsafe有什么用?

这个问题在这里已经有了答案:C#Unsafe/FixedCode(7个答案)关闭8年前。C#关键字fixed/unsafe有什么用?例如,C#fixedKeyword(unsafe)usingSystem;classProgram{unsafestaticvoidMain(){fixed(char*value="sam"){char*ptr=value;while(*ptr!='\0'){Console.WriteLine(*ptr);++ptr;}}}}为什么我首先需要修复它?

c# - 如果从 C# 中的 try 或 catch block 返回,finally block 是否会被执行?如果是这样,是在返回之前还是之后?

没有可用的内容! 最佳答案 是的,执行了finallyblock,但是流程离开了tryblock-无论是到达结尾、返回还是抛出异常。来自C#4规范,第8.10节:Thestatementsofafinallyblockarealwaysexecutedwhencontrolleavesatrystatement.Thisistruewhetherthecontroltransferoccursasaresultofnormalexecution,asaresultofexecutingabreak,continue,goto,orr

c# - 在 finally block 中访问函数返回的值

我想知道是否可以在finallyblock中获取函数的返回值。我有一些这样的代码。try{return1;}finally{//Getthevalue1}我知道可以通过添加一个可以保存返回值的变量来实现。但我想知道是否有可能以任何方式获得值(value)。谢谢 最佳答案 不,你不能那样做。 关于c#-在finallyblock中访问函数返回的值,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

c# - 关键事件 : ProcessCmdKey

我试图在一个小测试Windows窗体应用程序上获得一些键盘响应,我有一个粗略的解决方案,即覆盖ProcessCmdKey。但是,我遇到了几个问题,并且发现了不一致之处。不同的事件:有没有办法在参数refMessagemsg,KeyskeyData中判断even是KeyDown、KeyUp还是KeyPress?KeyPress:我看过的所有地方都说KeyPress,即重复的键盘输入,只发生在字符键上,而箭头键则不会。但是,对于箭头键和字符键,事件处理程序被频繁地调用,并且以相同的方式/具有相同的行为。这是面对KeyPress事件,还是其他什么?理想情况下,我希望有一种方法可以在表单级别处

c# - 我可以重载 throw 关键字吗?

我想重载throw关键字以捕获继承自Exception的类,并让它在实际抛出之前执行一些日志记录和其他操作。这可能吗?还是我必须使用常规函数?我试过:publicclasscSilException:Exception{privatestringm_strMsg;publicoverridevoidthrow(cSilExceptionex){}......} 最佳答案 注册事件AppDomain.FirstChanceException.您可以在实际抛出之前获得所有异常。在事件处理程序中,您可以检查您的exception并执行所需