Questions tagged «c#»

C#是Microsoft与.NET平台并行创建的一种多范式,托管的,垃圾回收的面向对象编程语言。

2
C#是否可以与本机C ++编译器合并?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 根据这篇文章: http://channel9.msdn.com/Forums/Coffeehouse/MS-working-on-a-same-compiler-for-C-AND-C--Not-in-incubation-but-for-production- 这个帖子有多少真相?硬核C ++程序员(游戏开发者等)应该认真对待吗? 编辑:这个问题还有另一个目的... C#是否可以与C ++向后兼容?
23 c#  c++ 

9
委托与接口-还有更多可用的说明吗?
在阅读了《 何时使用委托代替接口》(《 C#编程指南》)一文之后,我需要一些帮助来理解以下给定的要点,我发现这些要点不太清楚(对我而言)。有任何示例或详细说明吗? 在以下情况下使用委托: 使用事件设计模式。 期望封装静态方法。 需要容易的组成。 一个类可能需要该方法的多个实现。 在以下情况下使用界面: 可以调用一组相关方法。 一个类仅需要该方法的一个实现。 我的问题是 事件设计模式意味着什么? 如果使用委托,组成如何变得容易? 如果有一组相关的方法可以被调用,那么使用接口-它有什么好处? 如果一个类仅需要该方法的一个实现,请使用接口-这样做有何好处?
23 c#  design  .net 

8
使用“ using”关键字时如何实现DRY原理?
考虑以下方法: public List<Employee> GetAllEmployees() { using (Entities entities = new Entities()) { return entities.Employees.ToList(); } } public List<Job> GetAllJobs() { using (Entities entities = new Entities()) { return entities.Jobs.ToList(); } } public List<Task> GetAllTasksOfTheJob(Job job) { using (Entities entities = new Entities()) { return entities.Tasks.Where(t => t.JobId == job.Id).ToList(); } …

7
'var'和null合并运算符'??'应该走多远 在不影响可读性的情况下进行娱乐?
该问题是从Code Review Stack Exchange 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 我知道问题的标题是非常主观的,但是??我的同龄人遇到了使用运算符的问题,而与此同时,我对申请var新的即将出现的代码并不满意/不满意。 使用??operator 给出的参数是,它占用了代码的可读性。 我的问题是,开始使用时会发生同样的事情var吗?

13
如何有效衡量可维护性?
上下文:我是全MS商店中的企业开发人员。 谁能推荐一种客观地衡量一段代码或应用程序可维护性的好方法? 为什么要进行可维护性:我对小组中的“质量”度量标准感到厌倦,该度量标准仅围绕bug的数量和代码覆盖率而变化。这两个指标都很容易使用,尤其是当您不评估可维护性时。目光短浅和截止日期导致大量技术债务,这些债务从未真正得到解决。 为什么具有客观衡量的能力:我在一个大型企业集团中工作。如果您不能客观地衡量它,就不能让人们对此负责,也不能使他们变得更好。主观测量要么不会发生,要么不会持续发生。 我正在查看VS2010代码指标,但我想知道是否还有其他建议。

3
我应该避免在C#中使用unsigned int吗?
我最近想到了在C#中使用无符号整数(并且我猜可以对其他“高级语言”说类似的论点) 当需要整数时,我通常不会遇到整数大小的难题,例如Person类的age属性(但问题不限于属性)。考虑到这一点,据我所知,使用无符号整数(“ uint”)优于有符号整数(“ int”)的唯一优势-可读性。如果我想表达年龄只能为正数的想法,可以通过将年龄类型设置为uint来实现。 另一方面,对无符号整数的计算可能会导致各种错误,并且使其难以执行诸如减去两个年龄的运算。(我读到这是Java省略无符号整数的原因之一) 在C#的情况下,我还可以认为setter上的保护子句可以提供两个世界中最好的解决方案,但是,例如当我将年龄传递给某种方法时,这将不适用。一种解决方法是定义一个名为Age的类,并将属性age作为唯一的对象,但是这种模式将让Me创建许多类,并且会造成混乱(其他开发人员将不知道什么时候对象只是包装器)以及更复杂的内容)。 关于此问题的一些最佳常规做法是什么?我应该如何处理这种情况?

8
什么时候原始的迷恋不是代码的味道?
最近,我读了很多文章,将原始的痴迷描述为一种代码气味。 避免原始痴迷有两个好处: 它使域模型更加明确。例如,我可以与业务分析师讨论邮政编码,而不是包含邮政编码的字符串。 所有验证都放在一个地方,而不是整个应用程序。 那里有很多文章描述什么是代码气味。例如,我可以看到为这样的邮政编码除去原始的困扰的好处: public class Address { public ZipCode ZipCode { get; set; } } 这是ZipCode的构造函数: public ZipCode(string value) { // Perform regex matching to verify XXXXX or XXXXX-XXXX format _value = value; } 您将打破DRY原则,将验证逻辑放在所有使用邮政编码的地方。 但是,以下对象呢? 出生日期:检查是否大于预期且小于今天。 薪金:检查是否大于或等于零。 您将创建DateOfBirth对象和Salary对象吗?好处是您可以在描述域模型时谈论它们。但是,这是过度工程的一种情况,因为没有太多的验证。是否有一条规则描述了何时以及何时不消除原始的困扰,或者如果可能的话,您应该始终这样做吗? 我想我可以创建一个类型别名而不是一个类,这将有助于上面的第一点。

7
“ Set”是否应具有Get方法?
让我们拥有这个C#类(在Java中几乎相同) public class MyClass { public string A {get; set;} public string B {get; set;} public override bool Equals(object obj) { var item = obj as MyClass; if (item == null || this.A == null || item.A == null) { return false; } return this.A.equals(item.A); } public override int GetHashCode() …

7
在.NET中实现DI的“正确”方法是什么?
我希望在相对较大的应用程序中实现依赖注入,但是对此没有经验。我研究了概念和可用的IoC和依赖注入程序的一些实现,例如Unity和Ninject。但是,有一件事让我难以理解。如何在应用程序中组织实例创建? 我正在考虑的是,我可以创建一些特定的工厂,其中将包含为某些特定的类类型创建对象的逻辑。基本上是一个静态类,带有一个调用此类中静态内核实例的Ninject Get()方法的方法。 它是在我的应用程序中实现依赖注入的正确方法还是我应该根据其他原则实现它?

3
与在创建过程中可变但之后不可变的成员一起上课
我有一个创建对象集合的算法。这些对象在创建期间是可变的,因为它们最初很少,但是随后在算法中的不同位置填充了数据。 算法完成后,就决不能更改对象,但是对象会被软件的其他部分消耗。 在这些情况下,如下所述,拥有该类的两个版本是否被视为一种好习惯? 可变的是由算法创建的,然后 算法完成后,将数据复制到不可变的对象中,然后将其返回。
22 c# 


2
ASP.NET MVC应用程序是否应该直接使用实体框架作为模型?
我正在Visual Studio 2013(MVC 5)中构建我的第一个MVC应用程序,但我对设置模型的最佳方法尚不清楚。 我已经从现有数据库中使用代码优先生成了一个实体框架模型。我的第一个直觉是创建一些中间类,这些中间类将成为视图使用的模型,并使这些类与实体框架类一起工作。 当我编写中介类时,我意识到我只是在重新实现EF类已经用偶尔的私有setter或从一种数据类型转换为另一种数据类型所做的许多事情。因此,这似乎是一种浪费。 是否直接将实体框架类用作MVC应用程序的模型是一般规则?还是构建这些中间课程缺少一些好处?

3
我应该使用列表还是数组?
我正在Windows窗体上计算项目编号的UPC。 我成功创建了一个可一次处理一个物料编号/ UPC的物料,现在我想扩展并针对多个物料编号/ UPC进行处理。 我已经开始尝试使用列表,但是我一直陷于困境。我创建了一个帮助器类: public class Codes { private string incrementedNumber; private string checkDigit; private string wholeNumber; private string wholeCodeNumber; private string itemNumber; public Codes(string itemNumber, string incrementedNumber, string checkDigit, string wholeNumber, string wholeCodeNumber) { this.incrementedNumber = incrementedNumber; this.checkDigit = checkDigit; this.wholeNumber = wholeNumber; this.wholeCodeNumber = wholeCodeNumber; this.itemNumber = …
22 c#  array  winforms  list 

2
域驱动设计-实体问题中的外部依赖关系
我想启动域驱动设计,但是在开始之前我想解决一些问题:) 假设我有一个网上论坛和用户,当用户想要加入网上论坛时,我正在调用groupsService.AddUserToGroup(group, user)method。在DDD中,我应该这样做group.JoinUser(user),看起来不错。 如果我有一些添加用户的验证规则,或者将用户添加到组中时需要启动一些外部任务,则会出现问题。拥有这些任务将导致实体具有外部依赖性。 例如-限制用户最多只能参加3个小组。这将需要从group.JoinUser方法内部进行DB调用来验证这一点。 但是,实体依赖于某些外部服务/类这一事实在我看来并不那么好,也不是“自然的”。 在DDD中处理此问题的正确方法是什么?

6
面向方面的编程:什么时候开始使用框架?
我只是看着这个演讲由Greg Young的警告人们KISS:保持简单愚蠢。 其中一个建议,他的事情是做面向方面编程,一个也不会需要一个框架。 他首先提出了一个严格的约束条件:所有方法只能使用一个参数,并且只能使用一个参数(尽管他稍后通过使用部分应用程序来放松此参数)。 他给出的示例是定义一个接口: public interface IConsumes<T> { void Consume(T message); } 如果我们要发出命令: public class Command { public string SomeInformation; public int ID; public override string ToString() { return ID + " : " + SomeInformation + Environment.NewLine; } } 该命令实现为: public class CommandService : IConsumes<Command> { private IConsumes<Command> …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.