草庐IT

c# - 属性 Get v 方法的性能

我有一个包含方法集合的类,我想知道使用方法而不是属性是否有任何性能提升?一些方法相当复杂,但基本上返回一个IEnumerable对象集合,而其他方法则是简单的返回值。Where(x=>x.property=="comparison")Linq查询。示例方法:publicIEnumerableActivePens()=>Pens.Where(x=>x.Status=="Active");属性:publicIEnumerableActivePens=>Pens.Where(x=>x.Status=="Active");将它们标记为属性或方法会更好吗? 最佳答案

c# - 具有数据访问层的通用存储库

我正在使用业务对象(员工、产品)创建一个新项目。由于限制,我没有使用LINQtoSQL或任何ORM映射器。我必须手动编写数据访问层代码。我有兴趣使用“存储库模式”。根据我的理解,我必须创建一个通用存储库IRepository,它由所有存储库ProductRepository、EmployeeRepository实现。让我困惑的是不同的业务对象有不同的需求。例如:产品库GetAllProducts();GetProductById(intid);GetProductByMaxPrice(doubleprice);GetProductByNamePrice(stringname,doubl

C# 抽象结构

如何在C#中使用结构实现继承(或类似继承)?我知道抽象结构是不可能的,但我需要实现类似的目标。我需要它作为一个结构体,因为它必须是一个值类型。我需要继承,因为我需要一个通用数组和我可以保证的方法。我认为一个例子会有很长的路要走,所以这里有一些代码无法编译,但显示了我想要实现的目标;abstractstructVertex{abstractintSizeInBytes;abstractvoidSetPointers();}structColorVertex:Vertex{Vector3Position;Vector4Color;overrideintSizeInBytes//static

c# - 为什么类实例的私有(private)成员在 Equals() 方法体中可用?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Whyaremyprivatesaccessible?Whyareprivatefieldsprivatetothetype,nottheinstance?很可能我遗漏了一个明显的事实,但我真的看不出原因:当我覆盖Equals()方法并且当我将对象转换为我的类型时,我能够调用它的私有(private)成员没有任何问题!我正在初始化一个实例,我希望它的私有(private)成员不可访问。但是为什么被转换的对象在Equals()方法中向我开放它的私有(private)?查看下面示例代码中的Equals实现,看看我

c# - 设计游戏对象

我最近开始使用MicrosoftXNA和C#开发一款自娱自乐的小游戏。我的问题是关于设计游戏对象和继承它的对象。我将把游戏对象定义为可以在屏幕上呈现的东西。因此,为此,我决定创建一个基类,所有其他需要渲染的对象都将继承该基类,称为GameObject。下面的代码是我制作的类:classGameObject{privateModelmodel=null;privatefloatscale=1f;privateVector3position=Vector3.Zero;privateVector3rotation=Vector3.Zero;privateVector3velocity=Vec

c# - 要通过什么?引用对象还是值类型?

伙计们,我有一个“最佳实践问题”例如我有这个类(class):classPerson{publicintage{get;set;}}classComputer{publicvoidcheckAge(Personp)//WhichoneisrecommendedTHIS{//DosmthgwiththeAGE}publicvoidcheckAge(intp)//ORTHIS{//Dosmthgwiththeage.}}建议通过什么?正是我需要的(int-value类型)或整个对象(引用类型)我问这个是因为我在我正在制作的应用程序上使用LINQ,并且我已经创建了许多实体,我应该在其中传递I

C#:解决继承类与其基类之间的无效转换异常

我有两个类,名为Post和Question。问题定义为:publicclassQuestion:Post{//...}我的Question类没有覆盖Post的任何成员,它只是表达了一些其他的。我想完成的事情我有一个Post类型的对象,其成员已填充。现在,我想将其转换为一个问题,以便我可以为其他几个成员添加值。这是我当前的代码,使用显式转换:PostpostToQuestion=newPost();//PopulatethePost...Questionques=(Question)postToQuestion;//-->thisistheerror!//Filltheotherpart

c# - 限制类的实例创建?

我正在使用C#。我已经创建了一个可以包含在任何c#.net项目(桌面或基于Web)中的类,但我希望在我的类的那个应用程序中只创建10个对象。如果创建的对象实例超过10个,那么它应该给出错误,否则简单将不起作用。有两种情况,我会将myclass.cs文件包含在任何项目或我会将我的类捆绑在一个DLL中,然后将其包含在任何应用程序中在这两种情况下,如果在应用程序中创建了超过10个我的类的实例,则必须通过错误。这个问题是我老师问的,他让我在网上搜索答案,我试过了,但是没有找到解决这个问题的方法,我没听说我们可以限制对象?有可能吗,如果有的话怎么办?谢谢 最佳答案

c# - 在实例化对象时以编程方式使用字符串作为对象名称

这是一个人为的例子,但可以说我已经声明了对象:CustomObjfooObj;CustomObjbarObj;CustomObjbazObj;我有一个字符串数组:string[]stringarray=newstring[]{"foo","bar","baz"};我如何使用字符串数组以编程方式访问和实例化这些对象,并使用类似foreach的东西进行迭代:foreach(stringiinstringarray){`i`Obj=newCustomObj(i);}希望我试图传达的想法是清楚的。这在C#中可能吗? 最佳答案 您需要清楚对象

c# - 对于实现接口(interface)的类型,你怎么能要求一个没有参数的构造函数呢?

有办法吗?我需要实现特定接口(interface)的所有类型都具有无参数构造函数,可以吗?我正在为我公司的其他开发人员开发用于特定项目的基本代码。有一个进程将创建执行特定任务的类型实例(在不同的线程中),我需要这些类型遵循特定的约定(因此,接口(interface))。接口(interface)将在程序集内部如果您对这种没有接口(interface)的场景有什么建议,我很乐意考虑... 最佳答案 不要太直白,但你误解了接口(interface)的用途。一个接口(interface)意味着几个人可以在自己的类中实现它,然后将那些类的实