草庐IT

派生词

全部标签

c# - 如何利用泛型来填充派生类模型以避免代码重复?

我有2种类型,每种类型都有不同的处理逻辑。基于该处理,我正在准备一个结果并将其返回给消费者(mvc应用程序、控制台应用程序等)类型1类型2现在的问题是一些代码在这两种类型中是通用的。唯一不同的部分是两种类型的类(Type1Manager,Type2Manager)它实际上包含处理type1和type2以及准备结果的逻辑(Type1Model,Type2Model)。publicclassVariant{publicintId{get;set;}publicstringName{get;set;}publicListSubvariants{get;set;}}publicclassSub

c# - 在派生类中重载基方法

所以我正在使用C#来查看它是否与这篇文章中的C++行为相匹配:http://herbsutter.com/2013/05/22/gotw-5-solution-overriding-virtual-functions/当我遇到这种非常奇怪的行为时:publicclassBaseClass{publicvirtualvoidFoo(inti){Console.WriteLine("CalledFoo(int):"+i);}publicvoidFoo(stringi){Console.WriteLine("CalledFoo(string):"+i);}}publicclassDerive

c# - 我可以用这种方式为所有派生的单例定义一个抽象类吗?

这是我的抽象类,每次我想制作一个Singleton时都必须派生它:publicabstractclassSingletonwhereT:Singleton{privatestaticreadonlyLazy_instance=newLazy(()=>{varconstructor=typeof(T).GetConstructor(BindingFlags.NonPublic|BindingFlags.Instance,null,newType[0],null);return(T)constructor.Invoke(null);});publicstaticTInstance{get{

c# - CrmSvcUtil 仅创建 OrganizationServiceContext 派生体(应为 CrmOrganizationServiceContext)

我以这种方式使用CrmSvUtil:crmsvcutil.exe/url:http://crm2011/MyTestOrg/XRMServices/2011/Organization.svc/out:GeneratedCode.cs/namespace:Xrm/serviceContextName:XrmDataContext并且输出包含数千个业务对象和此上下文类:[System.CodeDom.Compiler.GeneratedCodeAttribute("CrmSvcUtil","5.0.9688.1533")]publicpartialclassXrmDataContext:M

c# - 获取首先实现接口(interface)但没有派生类的所有 c# 类型

与Gettingalltypesthatimplementaninterface有关我们可以轻松获取实现特定接口(interface)的Assembly中的所有Type。例子:interfaceIFace{}classFace:IFace{}classTwoFace:Face{}对于这个结构,我们将通过反射找到两个类,即所有从第一个实现派生的类,使用GetTypes().Where(type=>type.GetInterfaces().Contains(typeof(IFace)))所以问题是:如何将结果限制为最初实现接口(interface)的基类?!在这个例子中:只有类类型Face

c# - 是否可以在不创建派生类的情况下将数据传递给 EventArgs?

我有点懵。我知道我可以创建从EventArgs派生的类以获得自定义事件数据。但是我能以某种方式使用基类EventArgs吗?就像鼠标按钮点击一样,在订阅者方法中,总是有“EventArgse”参数。我能否以某种方式创建以这种方式传递数据的方法,我的意思是它们将在基本Eventargs中传递? 最佳答案 您可以通过通用类型方法使用EventArgs类。在此示例中,我将使用Rect类作为返回类型:publicEventHandlerSizeRectChanged;引发事件:if(SizeRectChanged!=null){Rectr=

c# - 如何使用 Json.net 反序列化从 Exception 类派生的对象?

我正在尝试反序列化从Exception类派生的对象:[Serializable]publicclassError:Exception,ISerializable{publicstringErrorMessage{get;set;}publicError(){}}Errorerror=JsonConvert.DeserializeObject("jsonerrorobjstring");它给我错误:ISerializabletype'type'doesnothaveavalidconstructor. 最佳答案 添加一个新的构造函数p

c# - GetExecutingAssembly() 用于不同程序集中的派生类

我有一个插件架构,其中在主应用程序中定义了一个抽象基类。它使用反射来加载具有基类的派生实现的程序集。我想获取包含派生对象的程序集的版本信息。这是我的基类:namespaceMy.AppNameSpace{publicabstractclassBaseClass{publicVersionVersion{get{Assemblyassembly=Assembly.GetExecutingAssembly();FileVersionInfofvi=FileVersionInfo.GetVersionInfo(assembly.Location);stringversion=fvi.File

C# foreach 派生类的行为?

现在我有一个相对简单的类设置:classA{//stuff}classB:A{//morestuff}publicListListOfObjects;如果我这样做会发生什么foreach(BiinListOfObjects)我只能得到类型B的对象吗?它会应用一些OO魔法并将所有As转换为Bs吗?这还能行得通吗? 最佳答案 如果列表中有A(或其他不是B或B的子类的东西),那么它将简单地打破无效类型转换。你可能想要:foreach(BiinListOfObjects.OfType()){...}在.NET3.5中。(我假设列表本身是非空

c# - 有没有办法从派生类型到达另一个对象的 `protected` 成员?

classMyBase{protectedobjectPropertyOfBase{get;set;}}classMyType:MyBase{voidMyMethod(MyBaseparameter){//Iamlookingfor:objectp=parameter.PropertyOfBase;//errorCS1540:Cannotaccessprotectedmember'MyBase.PropertyOfBase'viaaqualifieroftype'MyBase';thequalifiermustbeoftype'MyType'(orderivedfromit)}}有没有