Questions tagged «c#»

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


7
解决方案中的文件夹是否应与名称空间匹配?
解决方案中的文件夹是否应与名称空间匹配? 在我的一个团队项目中,我们有一个类库,该类库在项目中包含许多子文件夹。 项目名称和命名空间:MyCompany.Project.Section。 在此项目中,有几个与“名称空间”部分匹配的文件夹: 文件夹Vehicles在MyCompany.Project.Section.Vehicles名称空间中具有类 文件夹Clothing在MyCompany.Project.Section.Clothing名称空间中具有类 等等 在同一项目中,是另一个恶意文件夹 文件夹BusinessObjects在MyCompany.Project.Section名称空间中具有类 在某些情况下,为了“组织上的方便”而制作文件夹。 我的问题是:什么标准?在类库中,文件夹通常匹配名称空间结构吗?还是混合在一起?
129 c#  .net  namespaces 

7
数据表与数据集
我目前使用DataTable从数据库中获取结果,可以在我的代码中使用该结果。 但是,网络上的许多示例都显示了使用DataSet并通过collections方法访问表的情况。 使用数据集或数据表作为SQL结果的存储方法是否有任何优势(无论是性能还是其他方面)?
129 c#  dataset  datatable 



4
如何在txt文件中添加新行
我想将带有文本的新行添加到我的date.txt文件中,但是应用程序正在创建新的date.txt文件,而不是将其添加到现有的date.txt中。 TextWriter tw = new StreamWriter("date.txt"); // write a line of text to the file tw.WriteLine(DateTime.Now); // close the stream tw.Close(); 我想打开txt文件,添加一些文本,将其关闭,然后稍后单击以下内容:打开date.txt,添加文本,然后再次将其关闭。 这样我就可以得到: 按下按钮:txt打开->添加当前时间,然后将其关闭。按下另一个按钮,txt打开->在同一行中添加了文本“ OK”或“ NOT OK”,然后再次将其关闭。 所以我的txt文件看起来像这样: 2011-11-24 10:00:00 OK 2011-11-25 11:00:00 NOT OK 我怎样才能做到这一点?谢谢!

6
如何从另一个控制器重定向到索引?
我一直在尝试寻找某种方法来重定向到Index另一个控制器的视图。 public ActionResult Index() { ApplicationController viewModel = new ApplicationController(); return RedirectToAction("Index", viewModel); } 这就是我现在尝试过的。现在,我得到的代码具有ActionLink链接到我也需要的页面的代码Redirect。 @Html.ActionLink("Bally Applications","../Application")
129 c#  asp.net-mvc 


15
是否有一个IDictionary实现,在缺少键的情况下返回默认值而不是抛出该默认值?
如果缺少键,则字典中的索引器将引发异常。是否有IDictionary的实现将返回default(T)的实现? 我知道“ TryGetValue”方法,但是不能与linq一起使用。 这会有效地满足我的需求吗: myDict.FirstOrDefault(a => a.Key == someKeyKalue); 我认为它不会像我认为的那样会迭代键,而不是使用哈希查找。
129 c#  .net  hash  dictionary 

18
值不能为空。参数名称:来源
这可能是我浪费了很长时间解决的最大时间浪费问题。 var db = new hublisherEntities(); establishment_brands est = new establishment_brands(); est.brand_id = 1; est.establishment_id = 1; est.price = collection["price"]; est.size = collection["size"]; db.establishment_brands.Add(est); db.SaveChanges(); 这给我一个错误 值不能为空。参数名称:来源 的堆栈跟踪 [ArgumentNullException:值不能为null。参数名称:source] System.Linq.Enumerable.Any(IEnumerable 1 source, Func2谓词)+4083335 System.Data.Entity.Internal.InternalContext.WrapUpdateException(UpdateException updateException)+87 System.Data.Entity.Internal.InternalContext.SaveChanges()+ 193 System.Data.Entity.Internal.LazyInternalContext.SaveChanges()+33 System.Data.Entity.DbContext.SaveChanges()+20 ... ... 我只想向表添加一个实体。ORM是EF。

15
EF核心映射EntityTypeConfiguration
在EF6中,我们通常可以使用这种方式来配置实体。 public class AccountMap : EntityTypeConfiguration<Account> { public AccountMap() { ToTable("Account"); HasKey(a => a.Id); Property(a => a.Username).HasMaxLength(50); Property(a => a.Email).HasMaxLength(255); Property(a => a.Name).HasMaxLength(255); } } 我们如何在EF Core中做,因为当我继承该类时,EntityTypeConfiguration找不到该类。 我从GitHub下载EF Core原始源代码,但找不到。有人可以帮忙吗?

26
计算两个日期之间月份的差异
在C#/。NET中TimeSpan有TotalDays,TotalMinutes等等,但是我不知道总月差的公式。每月变化的日子和leap年不断让我失望。我如何获得TotalMonths? 编辑对不起,不是更清晰:我知道我不能真正从得到这个TimeSpan,但我想用TotalDays而TotalMinutes将是一个很好的例子来表达我一直在寻找......除了我试图获得总计个月。 例如:2009年12月25日-2009年10月6日= 2 TotalMonths。10月6日至11月5日等于0个月。1月11日,1个月。12月6日,2个月
128 c#  .net  datetime  timespan 

9
在C#中为大型文件创建校验和的最快方法是什么
我必须在某些计算机上同步大文件。文件最大为6GB。同步将每隔几周进行一次。我不能考虑文件名,因为它们可以随时更改。 我的计划是在目标PC和源PC上创建校验和,然后将带有校验和的所有文件复制到目标中,而校验和尚未在目标中。我的第一次尝试是这样的: using System.IO; using System.Security.Cryptography; private static string GetChecksum(string file) { using (FileStream stream = File.OpenRead(file)) { SHA256Managed sha = new SHA256Managed(); byte[] checksum = sha.ComputeHash(stream); return BitConverter.ToString(checksum).Replace("-", String.Empty); } } 问题是运行时: -带有1.6 GB文件的SHA256-> 20分钟 -带有1.6 GB文件的MD5-> 6.15分钟 是否有更好(更快)的方法来获取校验和(也许具有更好的哈希函数)?
128 c#  .net  large-files  checksum 

7
C#Float表达式:将结果float转换为int时的奇怪行为
我有以下简单代码: int speed1 = (int)(6.2f * 10); float tmp = 6.2f * 10; int speed2 = (int)tmp; speed1并且speed2应该具有相同的值,但实际上,我有: speed1 = 61 speed2 = 62 我知道我应该使用Math.Round而不是强制转换,但是我想了解为什么值不同。 我查看了生成的字节码,但是除了存储和加载之外,操作码是相同的。 我也在Java中尝试了相同的代码,并且正确获得了62和62。 有人可以解释吗? 编辑: 在实际代码中,它不是直接6.2f * 10,而是函数调用*常量。我有以下字节码: 为speed1: IL_01b3: ldloc.s V_8 IL_01b5: callvirt instance float32 myPackage.MyClass::getSpeed() IL_01ba: ldc.r4 10. IL_01bf: mul IL_01c0: conv.i4 IL_01c1: stloc.s …

9
评论界面,实现或两者?
我想象我们所有人(当我们可以打扰的时候!)评论我们的界面。例如 /// <summary> /// Foo Interface /// </summary> public interface Foo { /// <summary> /// Will 'bar' /// </summary> /// <param name="wibble">Wibble factor</param> void Bar(string wibble); } 您是否还评论了实现(它也可以提供给客户,例如作为aa库的一部分)?如果是这样,您如何管理两者同步?还是只添加“查看文档界面”注释? 谢谢
128 c#  java  comments  interface 

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.