Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。

4
将对象列表转换为对象属性之一的数组
说我有以下课程: public class ConfigItemType { public string Name { get; set; } public double SomeOtherThing { get; set; } } 然后列出以下类别的列表(List<ConfigItemType> MyList) 现在,我有一个带有以下签名的方法: void AggregateValues(string someUnrelatedValue, params string[] listGoesHere) 我如何能适应MyList到listGoesHere使用值ConfigItemType.Name作为PARAMS字符串数组? 我相当确定Linq可以做到这一点。。。。但是MyList没有select方法(这是我会使用的方法)。
133 c#  linq 


5
数据映射器,表数据网关(网关),数据访问对象(DAO)和存储库模式之间有什么区别?
我试图提高自己的设计模式技能,并且很好奇这些模式之间的区别是什么?它们似乎都是同一个东西-封装特定实体的数据库逻辑,因此调用代码不了解基础持久层。根据我的简要研究,所有这些方法通常都会实现您的标准CRUD方法并抽象出特定于数据库的详细信息。 除了命名约定(例如,CustomerMapper与CustomerDAO,CustomerGateway与CustomerRepository)之外,还有什么区别(如果有)?如果存在差异,您何时会选择一个? 过去,我会编写类似于以下内容的代码(自然而然地简化了-我通常不会使用公共属性): public class Customer { public long ID; public string FirstName; public string LastName; public string CompanyName; } public interface ICustomerGateway { IList<Customer> GetAll(); Customer GetCustomerByID(long id); bool AddNewCustomer(Customer customer); bool UpdateCustomer(Customer customer); bool DeleteCustomer(long id); } 并具有一个CustomerGateway为所有方法实现特定数据库逻辑的类。有时,我不会使用接口,而是将CustomerGateway上的所有方法设为静态(我知道,这使得它的测试性较差),因此可以这样称呼它: Customer cust = CustomerGateway.GetCustomerByID(42); 对于数据映射器和存储库模式,这似乎是相同的原理。DAO模式(我认为与网关相同)是在鼓励特定于数据库的网关。 我想念什么吗?拥有3-4种不同的方法来做同样的事情似乎有些奇怪。


11
如何查找本机DLL文件是编译为x64还是x86?
我想确定是否从托管代码应用程序(C#)将本机程序集编译为x64或x86 。 我认为它必须在PE标头中,因为操作系统加载程序需要知道此信息,但我找不到它。当然,我更喜欢在托管代码中执行此操作,但是如果需要,我可以使用本机C ++。
133 c#  .net  winapi  64-bit  x86-64 

2
实体框架联接3个表
我正在尝试加入三个表,但我不明白该方法... 我完成了加入2张桌子 var entryPoint = dbContext.tbl_EntryPoint .Join(dbContext.tbl_Entry, c => c.EID, cm => cm.EID, (c, cm) => new { UID = cm.OwnerUID, TID = cm.TID, EID = c.EID, }). Where(a => a.UID == user.UID).Take(10); 我想在TID PK中包含tbl_Title表,并获取Title字段。 非常感谢

1
如何将逐字字符串与插值一起使用?
在C#6中,有一个新功能:内插字符串。 这些使您可以将表达式直接放入代码中,而不是依赖索引: string s = string.Format("Adding \"{0}\" and {1} to foobar.", x, this.Y()); 成为: string s = $"Adding \"{x}\" and {this.Y()} to foobar."; 但是,我们使用逐字字符串(主要是SQL语句)在多行中有很多字符串,如下所示: string s = string.Format(@"Result... Adding ""{0}"" and {1} to foobar: {2}", x, this.Y(), x.GetLog()); 将它们恢复为常规字符串似乎很麻烦: string s = "Result...\r\n" + $"Adding \"{x}\" and {this.Y()} to foobar:\r\n" …

9
仅基于表的一个字段在Linq中不同
我试图在Linq中使用.distinct来基于表的一个字段获取结果(因此不需要从表中复制整个记录)。 我知道写使用如下的基本查询: var query = (from r in table1 orderby r.Text select r).distinct(); 但我需要r.text没有重复的结果。
133 c#  sql  linq 

8
ASP.NET MVC是/否具有强绑定模型MVC的单选按钮
有谁知道如何将“是/否”单选按钮绑定到ASP.NET MVC中强类型模型的布尔属性。 模型 public class MyClass { public bool Blah { get; set; } } 视图 <%@ Page Title="blah" Inherits="MyClass"%> <dd> <%= Html.RadioButton("blah", Model.blah) %> Yes <%= Html.RadioButton("blah", Model.blah) %> No </dd> 谢谢 解: 感谢Brian的指导,但这与他写的相反。因此- <%@ Page Title="blah" Inherits="MyClass"%> <dd> <%= Html.RadioButton("blah", !Model.blah) %> Yes <%= Html.RadioButton("blah", Model.blah) %> No …

14
如何将DateTime与特定的字符串格式进行相互转换(两种方式,例如给定的Format为“ yyyyMMdd”)?
我在转换字符串格式的日期时间时遇到问题,但无法使用"yyyyMMdd"格式进行转换。 我的代码是: string tpoc = refSubClaim.BenefitsFolder.BenefitFolderIdNumber.ToString(); string[] tpocinfo = Regex.Split(tpoc,";"); for (int i = 0; i < tpocinfo.Length; i++) { switch (i) { case 0: { string[] tpoc2 = Regex.Split(tpocinfo[0], ","); claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString(); claimantAuxillaryRecord.TPOCAmount2 = Convert.ToDecimal(tpoc2[1]); claimantAuxillaryRecord.FundingDelayedBeyondTPOCStartDate2 = tpoc2[2].ToString(); } break;
132 c#  string  datetime 


9
C#中Action委托的使用
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 改善这个问题 我曾与C#中的“行动代表”一起工作,希望对他们有更多的了解,并思考他们可能在什么地方有用。 有人使用过动作代表吗,为什么?还是可以举一些可能有用的例子?
132 c#  lambda  delegates  action 

30
在Visual Studio 2005上的编译时间非常慢
我们的编译时间很慢,在双核2GHz,2G Ram机器上可能要花费20多分钟的时间。 这主要归因于我们的解决方案的规模(已发展到70多个项目),以及VSS(当您拥有大量文件时,它本身就是瓶颈)。(不幸的是,换掉VSS并不是一个选择,所以我不希望它沦落为VSS的狂欢) 我们正在考虑合并项目。我们还在寻找具有多种解决方案的解决方案,以实现问题的更大分离,并为应用程序的每个元素缩短编译时间。当我们尝试保持同步时,我可以看到这将变成DLL地狱。 我很想知道其他团队是如何处理此扩展问题的,当您的代码库达到临界值时,您会怎么做?您浪费了半天时间在状态栏上查看编译消息。 UPDATE 我忽略了提及这是一个C#解决方案。感谢所有C ++的建议,但是距离我不得不担心头文件已经过去了几年了。 编辑: 到目前为止已经有用的好建议(不是说下面没有其他好建议了,只是有什么帮助了) 新型3GHz笔记本电脑-失去管理的能力使管理时产生奇迹 在编译过程中禁用反病毒 编译期间与VSS(实际上是网络)的“断开连接”-我可能会让我们完全删除VS-VSS集成,并坚持使用VSS UI 仍然不能通过编译进行反复操作,但是一点点都可以。 Orion在评论中确实提到了仿制药也可能发挥作用。从我的测试来看,确实确实对性能的影响最小,但是不足以确保-由于光盘活动,编译时间可能不一致。由于时间限制,我的测试未包含实时系统中出现的那么多泛型或代码,因此可能会累积。我不会避免在应该使用泛型的地方使用它们,只是为了提高编译时的性能。 解决方法 我们正在测试在新解决方案中构建应用程序新区域的实践,根据需要导入最新的dll,并在我们满意时将它们集成到更大的解决方案中。 我们还可以通过创建临时解决方案来对它们进行处理,这些临时解决方案仅封装了我们需要处理的区域,并在重新集成代码后将其丢弃。我们需要权衡重新集成此代码所花费的时间与我们在开发过程中没有像Rip Van Winkle这样的快速重新编译经验所获得的时间。

8
使用AngularJS从ASP.NET Web API方法下载文件
在我的Angular JS项目中,我有一个<a>锚标记,单击该锚标记会生成一个HTTPGET会对返回文件的WebAPI方法请求。 现在,我希望一旦请求成功就将文件下载给用户。我怎么做? 锚标记: <a href="#" ng-click="getthefile()">Download img</a> AngularJS: $scope.getthefile = function () { $http({ method: 'GET', cache: false, url: $scope.appPath + 'CourseRegConfirm/getfile', headers: { 'Content-Type': 'application/json; charset=utf-8' } }).success(function (data, status) { console.log(data); // Displays text data if the file is a text file, binary if it's an image …

10
调试与发布性能
我遇到了以下段落: “在Visual Studio中编译代码时,IDE中的“调试与发布”设置几乎对性能没有影响……生成的代码几乎相同。C#编译器实际上并没有做任何优化。C#编译器仅吐出IL…,而在运行时由JITer进行所有优化。JITer确实具有调试/发布模式,这对性能产生了巨大的影响。但这并不能阻止您运行项目的“调试”或“发布”配置,也无法阻止是否连接了调试器。” 来源在这里,播客在这里。 有人可以指导我阅读可以实际证明这一点的Microsoft文章吗? 谷歌搜索“ C#调试与发布性能 ”通常会返回结果,说“ 调试具有很大的性能优势 ”,“ 发布已优化 ”和“ 不将调试部署到生产环境 ”。

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.