草庐IT

xdebug_get_declared_vars

全部标签

c# - var 关键字并不总是有效?

C#,VS2010。有人,请解释为什么我不能在下面的代码中使用var!varprops=TypeDescriptor.GetProperties(adapter);//errorCS1061:'object'doesnotcontainadefinitionfor'DisplayName'foreach(varpropinprops){stringname=prop.DisplayName;}//Noerrorforeach(PropertyDescriptorpropinprops){stringname=prop.DisplayName;}TypeDescriptor.GetPro

c# - 与 C# 中的显式类型相比,使用 var 有什么优势?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicates:What’sthepointofthevarkeyword?UseofvarkeywordinC#我了解如何IEnumerable对于数据类型可能会使代码的可读性降低一点,或者嵌套的泛型看起来有点令人生畏。但是除了代码可读性之外,使用var而不是显式类型还有什么优势吗?似乎通过使用显式类型,您最好传达变量的功能,因为您知道它是什么。如果它是一种工作场所编码标准,我会为了团队合作而使用它。然而,在我自己的项目中,我更愿意避免使用var。

c# - Request.QueryString[] 对比 Request.Query.Get() 对比 HttpUtility.ParseQueryString()

我搜索了SO并发现了类似的问题,但没有一个比较这三个问题。这让我很吃惊,所以如果有人知道,请指点一下。有许多不同的方法来解析请求的查询字符串……“正确”的方法(IMO)应该处理空值/缺失值,但也要适本地解码参数值。以下哪项是同时做到这两点的最佳方式?方法一stringsuffix=Request.QueryString.Get("suffix")??"DefaultSuffix";方法2stringsuffix=Request.QueryString["suffix"]??"DefaultSuffix";方法三NameValueCollectionparams=HttpUtility.

c# - get_SynonymInfo 某些词抛出内存不足异常

我有一个简单的测试程序,它使用MicrosoftWordInterop从同义词词典中获取词义:usingSystem;usingWord=Microsoft.Office.Interop.Word;classProgram{staticvoidMain(string[]args){stringword="elite";//="common";varapp=newWord.Application();varsynInfo=app.SynonymInfo[word,Word.WdLanguageID.wdEnglishUS];if(synInfo.Found&&synInfo.Meanin

c# - "The ' http ://www. w3.org/XML/1998/namespace:lang ' attribute is not declared."

有时,在使用XmlValidatingReader验证某些XML文档时,我收到以下错误:System.Xml.Schema.XmlSchemaValidationException:"The'http://www.w3.org/XML/1998/namespace:lang'attributeisnotdeclared."同一个文档有时会成功。我不明白为什么。我的XSD像这样导入架构:...在XML文档中我有以下属性:最后,XmlReaderSettings:constXmlSchemaValidationFlagsvalidationFlags=XmlSchemaValidation

c# - .NET 属性生成 "must declare a body because it is not marked abstract or extern"编译错误

我有一个.NET3.5(目标框架)网络应用程序。我有一些看起来像这样的代码:publicstringLogPath{get;privateset;}publicstringErrorMsg{get;privateset;}它给我这些行的编译错误:"mustdeclareabodybecauseitisnotmarkedabstractorextern."有什么想法吗?我的理解是这种风格的属性在.NET3.0中是有效的。谢谢!原来问题出在我的.sln文件本身。尽管我在构建选项中更改了目标版本,但在.sln文件中,我发现了这一点:TargetFramework="3.0"将其更改为“3.5

c# - WPF 数据绑定(bind) : enable/disable a control based on content of var?

我的表单上有一个按钮,只有在TreeView(或tabitem中的ListView)中选择了一个项目时才应启用该按钮。选择一个项目时,它的值存储在一个字符串成员变量中。我可以将按钮的IsEnabled属性绑定(bind)到成员var的内容吗?也就是说,如果成员var不为空,则启用该按钮。同样,当成员变量的内容发生变化(设置或清除)时,按钮的状态也应发生变化。 最佳答案 由于您可能希望根据字符串绑定(bind)按钮的IsEnabled属性,请尝试为它创建一个转换器。即...和转换器:[ValueConversion(typeof(st

c# - 枚举 MatchCollection 时,为什么 var 结果是 Object 类型而不是 Match 类型?

我注意到下面的代码有些奇怪:MatchCollectionmc=Regex.Matches(myString,myPattern);foreach(varmatchinmc)Console.WriteLine(match.Captures[0]);//变量match的类型是Object而不是Match。我习惯于使用var枚举集合,没有这样的问题。为什么MatchCollection不同? 最佳答案 MatchCollection是在.NET2之前编写的,所以它只是实现了IEnumerable而不是IEnumerable.但是,您可以

c# - 为什么我需要使用 get 和 set?

我有一段代码:publicclassMyClass{privatestring_myProperty;publicstringMyProperty{get{return_myProperty;}set{_myProperty=value;}}}这里有什么意义?我可以将_myProperty字符串声明为公共(public)字符串,我的任何类对象都可以直接访问它们并获取或设置值。相反,我们将_myProperty设为私有(private),并使用类对象使用get和set来访问它们。在任何一种情况下,类对象都能够访问它们并且结果总是相同的。那么为什么要使用这种方法呢?这仅仅是因为我可以在se

C# 排序列表 : How to get the next element?

我想知道如何获取C#排序列表中的下一个元素。到目前为止,我想出了以下代码:SortedListmList;BlasomeElement=mList[key];Blanext=mList[mList.Keys[mList.IndexOfKey(key)+1]];我不确定这是否是最明智的做法;-) 最佳答案 因为您可以通过index(seetheRemarkssection)访问SortedList,我建议使用以下内容:varindex=mList.IndexOfKey(key);varfirst=mList.Values[index]