草庐IT

c# - Prop 和完整属性(property)有什么区别?

下面两段代码有区别吗?或者顶部只是底部的缩写形式?publicstringName{get;set;}和privatestring_Name;publicstringName{get{return_Name;}set{_Name=value;}} 最佳答案 唯一的区别(除了您必须在类构造函数中使用“默认名称”进行初始化之外)是_Name将在类本身中可见。存在该类将在内部引用_Name而不是Name的风险,一切都会正常工作,并且在稍后的某个时间点您将向添加一些逻辑不会调用的名称,因为您在类中使用了_Name。例子:privatestr

c# - LINQ to Entities Group By 表达式给出 'Anonymous type projection initializer should be simple name or member access expression'

我在这个表达式中遇到了上述错误:varaggregate=fromtinentities.TraceLinesjoinminentities.MethodNames.Where("it.NameLIKE@searchTerm",newObjectParameter("searchTerm",searchTerm))ont.MethodHashequalsm.MethodHashwhere(t.CallTypeId&(int)types)==t.CallTypeId&&t.UserSessionProcessId==m_SessionIdgrouptbym.Nameintodselect

c# - 从 Linq 中的数据表中选择不同的行

我正在尝试根据多列(attribute1_name、attribute2_name)获取不同的行,并使用Linq-to-Dataset从数据表中获取数据行。我想要这样的结果attribute1_nameattribute2_name-----------------------------AgeStateAgeweekend_percentAgestatebreaklawAgeAnnualSalesAgeAssortment如何精简Linq到数据集? 最佳答案 如果它不是类型化的数据集,那么您可能想要使用Linq-to-DataSe

c# - 属性 'name'是对象关键信息的一部分,不能修改。 Entity Framework

我正在尝试更新记录,但在context.SaveChanges();之后收到此错误消息Theproperty'name'ispartoftheobject'skeyinformationandcannotbemodified.这是更新函数的代码:if(context.EAT_SourceNames.Any(e=>e.name==newSourceName)){MessageBox.Show("NamealreadyexistsintheDatabase");}else{varnameToUpdate=context.EAT_SourceNames.SingleOrDefault(e=>

c# - 为什么 "someString += AnotherString = someString;"在 C# 中有效

我今天正在写一些代码,当我按住alt-tab键切换到另一台显示器上的屏幕以检查某些内容时,我正在中线。当我回头看时,ReSharper将灰色下方的第3行涂上了注释“分配的值未在任何执行路径中使用”。varltlName=(Literal)e.Item.FindControl("ltlName");stringname=item.FirstName;name+=ltlName.Text=name;我很困惑;这段代码肯定无法编译。但它确实如此,而且它也在运行。“name+=”行对字符串没有影响(据我所知)。这是怎么回事?(VisualStudio2008、.NET3.5)

c# - Entity Framework 5 MaxLength

我正在使用EF4和我发现的一段代码来从这样的实体获取MaxLength值:publicstaticint?GetMaxLength(stringentityTypeName,stringcolumnName){int?result=null;using(fooEntitiescontext=newfooEntities()){TypeentType=Type.GetType(entityTypeName);varq=frommetaincontext.MetadataWorkspace.GetItems(DataSpace.CSpace).Where(m=>m.BuiltInTypeK

c# - Dictionary.ContainsKey 返回 False,但想要 True

namespaceDic{publicclassKey{stringname;publicKey(stringn){name=n;}}classProgram{staticstringTest(){Keya=newKey("A");Keyb=newKey("A");System.Collections.Generic.Dictionaryd=newSystem.Collections.Generic.Dictionary();d.Add(a,1);returnd.ContainsKey(b).ToString();}staticvoidMain(string[]args){System

C#:参数验证:null/空字符串

我不知道有多少次我不得不编写代码来验证字符串参数:publicRoomName(stringname){if(string.IsNullOrEmpty(name)){thrownewArgumentException("Cannotbeempty","name");}}有没有办法避免这种情况?是否有一些属性或契约设计机制可以避免这种情况?有没有办法说:publicRoomName(NotNullOrEmptyStringname){无需实际创建该类型? 最佳答案 您可以通过带有属性的代码注入(inject)来做到这一点。另一种节省一

c# - 是否可以在没有全名的情况下从 GAC 加载程序集?

我知道如何从文件名和GAC加载程序集。由于我的.msi文件会将一个dll项目放入GAC,我想知道是否可以在不知道全名的情况下从GAC加载它(我的意思是只使用程序集名称,甚至是dll文件名),因为我必须从另一个项目加载此程序集。 最佳答案 这是一段允许执行此操作的代码,以及一个示例:stringpath=GetAssemblyPath("System.DirectoryServices");Assembly.LoadFrom(path);注意如果你需要一个特定的处理器架构,因为它支持部分名称,你可以写这样的东西://loadfromt

c# - 通过 COM 对象的反射获取属性名称

如何在C#中通过COM对象的反射读出所有属性名称?如果我知道名称,我就知道如何获得该属性(property)。comObject.GetType().InvokeMember("PropertyName",System.Reflection.BindingFlags.GetProperty,null,comObject,null);但是什么时候我想转储所有属性呢?PropertyInfo[]properties=t.GetProperties();这种方式不适用于Com对象。如果我执行GetMembers(),我会得到这些成员:Name:GetLifetimeServiceName:I