草庐IT

成员方

全部标签

c# - 通过动态引用访问嵌套类的成员时发生 StackOverflowException

我已经定义了一个从BindingList派生的泛型类,并且有一个嵌套的非泛型类:classGeneric:BindingList.Inner>{publicclassInner{publicobjectFoo{get;set;}}}当尝试通过动态引用访问Value属性时,mscorlib中出现StackOverflowException,如下所示:dynamicd=newGeneric.Inner();varvalue=d.Foo;//StackOverflowExceptionvarvalue=d.Bar//StackOverflowExceptionaswell,nota//'Ru

c# - 为什么以这种方式调用 Action 成员是无效语法?

以下代码会产生语法错误:classFoo{publicActiona=()=>{};}voiddoSomething(){varfoo=newFoo();(foo.a)();//errorCS1525:Invalidexpressionterm')'}但是,以下替代方案都有效:foo.a();//worksActiona=foo.a;a();//works为什么会这样?(foo.a)是一个Action;为什么我不能调用它? 最佳答案 会发生什么?那是因为这段代码(foo.a)();会评估为一个cast-expression,如foo

c# - .NET 中是否可以将类的成员对象的事件暴露给外部?

假设我在ASP.NET中有一个包含按钮的用户控件:publicclassMyUserControl:UserControl{privateButtonbtnSave=newButton();}我可以通过创建指向按钮的属性将按钮的任何属性暴露给外部:publicstringSaveButtonText{get{returnbtnSave.Text;}set{btnSave.Text=value;}}然后我可以这样做来设置按钮的文本:MyControl.SaveButtonText="helloworld";我是否也可以使用类似的构造来将按钮的事件暴露给外部?像这样的东西:publicev

c# - 如何禁用 ASP.NET 成员身份提供程序的帐户?

我正在使用asp.net成员(member)提供程序。如果用户发布垃圾邮件,我需要阻止用户帐户。我如何使用MembershipProvider的内置功能来完成它。我可以使用IsLockedOut吗?如果是这样,我如何以编程方式更新它?谢谢 最佳答案 MembershipUseruser=Membership.GetUser("Yourusername");if(user!=null){user.IsApproved=false;Membership.UpdateUser(user);}

c# - c#中readonly关键字/Expression-bodied成员之间的区别?哪个更好?

在C#中,只读成员可以减少为只读自动属性/不可变成员的表达式体成员是表达式体成员比使用只读关键字更好吗?使用只读键:publicstaticreadonlystringCOMPANY_NAME="XYZ";使用Expression-bodied成员:publicstaticstringCOMPANY_NAME=>"XYZ";我遇到过各种论坛和解决方案,这些论坛和解决方案建议将表达式主体成员用于速记,但我找不到它在性能上有何不同。 最佳答案 让我们深入了解一下编译器对不同类型的字段做了什么。classProgram{publiccon

c# - 成员变量和成员属性之间的区别?

在某些情况下,我在类的顶部声明了成员变量,然后还声明了一个属性来访问或设置该成员变量,但我问自己,如果只访问该变量,那么该属性是否是必需的,并且从类内部而不是其他地方设置,那么使用属性访问和设置成员变量而不是直接对成员变量本身进行设置的优点是什么。这是一个例子:publicclassCar{intspeed;//IsthissufficientenoughifCarwillonlysetandgetit.publicCar(intinitialSpeed){speed=initialSpeed;}//Isthisactuallynecessary,isitonlyforsettinga

c# - 为什么C#中没有const成员方法和const参数?

与C++不同,C#中没有任何常量成员方法和常量参数。这是什么原因? 最佳答案 首先,不要求我们提供不实现某项功能的理由。功能非常昂贵;必须有理由实现一项功能,而不是不实现一项功能的理由。其次,C#不是C++或C的克隆。仅仅因为某项功能是用其他语言编写的并不能成为将其放入C#的理由。第三,“const”在C和C++中被深深地、悲惨地破坏了。“const”不能保证您实际上可以依赖。如果您是采用常量引用的方法的调用者,那么您无法保证该方法遵循常量;该方法有多种改变const引用的方法。如果您是const引用的消费者,那么您无法保证底层对象

c# - 使用 Sharepoint API 获取 AD 域组的成员

在我的Sharepoint代码中,我通过以下方式显示所有已定义用户的列表:foreach(SPUseruserinSPContext.Current.Web.AllUsers){...}最重要的是,我可以将域安全组添加到Sharepoint组(如访客),从而一次添加许多用户(更简单的管理)。但是我的代码至少在他们第一次登录之前看不到这些用户(如果他们有足够的权限)。在这种情况下,我只能看到域安全组SPUser对象实例,其IsDomainGroup设置为true。是否可以通过Sharepoint获取域组成员,而无需求助于ActiveDirectory查询(这是我宁愿避免的事情,因为您可能

c# - 如何忽略二进制序列化的事件类成员?

我需要避免序列化Event类成员,因为当事件由未标记为可序列化的对象处理时,序列化将失败。我尝试在Event类成员上使用NonSerialized属性,但编译失败。这行代码:PublicEventPropertyValueChanged()产生以下错误:Attribute'NonSerializedAttribute'cannotbeappliedto'PropertyValueChanged'becausetheattributeisnotvalidonthisdeclarationtype.PublicEventPropertyValueChanged()'compilesbutn

c# - C# 中接口(interface)成员的访问修饰符

我从以下属性中收到编译错误。错误是:"Themodifier'public'isnotvalidforthisitem"publicSystem.Collections.Specialized.StringDictionaryIWorkItemControl.Properties{get{returnproperties;}set{properties=value;}}但是如果我删除IWorkItemControl它编译正常。为什么我会收到此错误以及在签名中包含/不包含接口(interface)名称有什么区别? 最佳答案 Expli