Questions tagged «c#»

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

5
什么时候应该创建一个新的DbContext()
我目前正在使用DbContext类似的方法: namespace Models { public class ContextDB: DbContext { public DbSet<User> Users { get; set; } public DbSet<UserRole> UserRoles { get; set; } public ContextDB() { } } } 然后,在需要访问数据库的所有控制器的顶部使用以下行。我还在UserRepository类中使用了它,该类包含与用户有关的所有方法(例如,获取活动用户,检查他所扮演的角色等)。 ContextDB _db = new ContextDB(); 考虑这一点..当一个访问者可以具有多个活动的DbContext时,存在某些情况。如果他要访问使用UserRepository的控制器,那可能不是最好的主意,我对此有一些疑问 什么时候应该创建一个新的DbContext /应该传递一个全局上下文? 我可以在所有地方重复使用一个全局上下文吗? 这会导致性能下降吗? 其他人怎么做?

8
输入的字符串格式不正确
我是C#的新手,我具有Java的一些基本知识,但无法正常运行此代码。 它只是一个基本的计算器,但是当我运行程序VS2008时,出现此错误: 我做了几乎相同的程序,但是在Java中使用JSwing,它运行良好。 这是c#的形式: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace calculadorac { public partial class Form1 : Form { int a, b, c; String resultado; public Form1() { InitializeComponent(); a = Int32.Parse(textBox1.Text); b = Int32.Parse(textBox2.Text); } private void button1_Click(object …

10
与C ++的#region等效
#region与C ++的C ++等效是什么,因此我可以放入自定义代码可折叠位,并使代码更易于阅读?
83 c#  c++ 

4
如何通过辅助线程更新ObservableCollection?
我有一个ObservableCollection<A> a_collection;集合包含“ n”个项目。每个项目A如下所示: public class A : INotifyPropertyChanged { public ObservableCollection<B> b_subcollection; Thread m_worker; } 基本上,所有这些都连接到WPF列表视图+一个详细信息视图控件,该控件b_subcollection在单独的列表视图中显示所选项目的内容(2向绑定,属性更改的更新等)。 当我开始实施线程时,问题就出现了。整个想法是让a_collection工作线程充分利用它来“完成工作”,然后更新各自的工作,b_subcollections并让gui实时显示结果。 当我尝试它时,我得到一个例外,说只有Dispatcher线程可以修改ObservableCollection,并且工作停止了。 谁能解释这个问题,以及如何解决?

5
使用授权标头(Bearer)设置Swagger(ASP.NET Core)
我有一个Web API(ASP.NET Core),我试图调整范围以从中进行调用。调用必须包含Authorization标头,并且我正在使用Bearer身份验证。来自Postman等第三方应用程序的呼叫正常。但是我在设置标题时会遇到麻烦(出于某些原因,我没有收到标题)。现在是这样的: "host": "localhost:50352", "basePath": "/" , "schemes": [ "http", "https" ], "securityDefinitions": { "Bearer": { "name": "Authorization", "in": "header", "type": "apiKey", "description": "HTTP/HTTPS Bearer" } }, "paths": { "/v1/{subAccountId}/test1": { "post": { "tags": [ "auth" ], "operationId": "op1", "consumes": ["application/json", "application/html"], "produces": ["application/json", "application/html"], "parameters": [ { "name": …

11
为什么double.NaN不等于自身?
谁可以给我解释一下这个?在C#中double.NaN不等于double.NaN bool huh = double.NaN == double.NaN; // huh = false bool huh2 = double.NaN >= 0; // huh2 = false bool huh3 = double.NaN <= 0; // huh3 = false 我可以将哪个常量与double.NaN进行比较,然后得出真值?
82 c#  .net 

4
首先关闭EF代码的CTP5 ProxyCreationEnabled的不利之处是什么
我的WCF服务可以从代码的第一个模型回归类的唯一方法是通过设置ProxyCreationEnable来false使用下面的代码。 ((IObjectContextAdapter)MyDb).ObjectContext.ContextOptions.ProxyCreationEnable = false; 这样做的负面后果是什么?一个好处是,我至少可以将这些动态类型序列化,以便可以使用WCF通过电线发送它们。

12
为什么在循环期间追加到TextBox.Text每次迭代都占用更多内存?
简短问题 我有一个运行18万次的循环。在每次迭代结束时,都应将结果附加到TextBox,并实时更新。 使用MyTextBox.Text += someValue将导致应用程序占用大量内存,并且在记录了数千条之后耗尽了可用内存。 有没有一种更有效的方式将文本附加到TextBox.Text18万次? 编辑我真的不在乎这种特殊情况的结果,但是我想知道为什么这似乎是一个内存消耗,以及是否存在一种将文本追加到TextBox的更有效的方法。 长(原始)问题 我有一个小应用程序,可以读取CSV文件中的ID号列表,并为每个文件生成PDF报告。生成每个pdf文件后,将在其后ResultsTextBox.Text附加已处理且已成功处理的报告的ID号。该进程在后台线程上运行,因此,在处理项目时,ResultsTextBox会实时更新 我目前正在针对180,000个ID号运行该应用程序,但是随着时间的流逝,该应用程序占用的内存呈指数增长。它的开始时间约为90K,但是大约3000条记录占用了大约250MB的内存,而4000条记录则占用了大约500 MB的内存。 如果我注释掉对“结果”文本框的更新,则内存保持相对稳定,大约为90K,因此我可以假定写入ResultsText.Text += someValue是导致它消耗内存的原因。 我的问题是,为什么呢?将数据追加到不占用内存的TextBox.Text的更好方法是什么? 我的代码如下所示: try { report.SetParameterValue("Id", id); report.ExportToDisk(ExportFormatType.PortableDocFormat, string.Format(@"{0}\{1}.pdf", new object[] { outputLocation, id})); // ResultsText.Text += string.Format("Exported {0}\r\n", id); } catch (Exception ex) { ErrorsText.Text += string.Format("Failed to export {0}: {1}\r\n", new object[] { id, ex.Message …
82 c#  wpf 

9
在事件声明中添加匿名空委托是否有不利之处?
我已经看到了一些关于这个成语的提法(包括SO): // Deliberately empty subscriber public event EventHandler AskQuestion = delegate {}; 好处很明显-避免了在引发事件之前检查null的需要。 但是,我很想了解是否有任何弊端。 例如,它是否已经被广泛使用并且足够透明以至于不会引起维护麻烦?空事件订阅者调用是否有明显的性能下降?

2
C#方法命名约定:ToSomething与AsSomething
在为业务逻辑对象编写一些扩展方法时,我遇到了重命名转换方法的问题。someObject.ToAnotherObject()与广泛使用会很好object.ToString()。 但是,例如LINQ,将两种变体混合在一起,我找不到它们之间的区别。ToDictionary(),ToList(),AsParallel(),AsQueryable(),... 这两种命名约定之间有什么区别,我应该知道什么才能决定是否将其用于自己的类?

8
.NET进程间通信的最佳选择是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 改善这个问题 我应该使用命名管道还是.NET Remoting与计算机上正在运行的进程进行通信?
82 c#  .net  process  ipc 

4
为什么递归构造函数调用会使无效的C#代码编译?
看完网络研讨会Jon Skeet Inspects ReSharper之后,我开始对递归构造函数调用进行一些研究,发现以下代码是有效的C#代码(有效,我是说它可以编译)。 class Foo { int a = null; int b = AppDomain.CurrentDomain; int c = "string to int"; int d = NonExistingMethod(); int e = Invalid<Method>Name<<Indeeed(); Foo() :this(0) { } Foo(int v) :this() { } } 众所周知,字段初始化由编译器移入构造函数。因此,如果您有一个类似的字段int a = 42;,那么您将a = 42在所有构造函数中使用。但是,如果您有构造函数调用另一个构造函数,则只有被调用的构造函数中会有初始化代码。 例如,如果您的构造函数的参数调用默认构造函数,则a = 42仅在默认构造函数中进行赋值。 为了说明第二种情况,下面的代码: class …
82 c# 

1
(Dis)将蓝牙设备与Windows.Devices.Bluetooth.Rfcomm(WP8.1)连接
在Windows Phone / Desktop 8.1上,连接和断开与蓝牙设备的连接已得到各种结果。我一直在使用Windows.Devices.Bluetooth.Rfcomm名称空间,并且尝试连接具有不同蓝牙版本/类别的多个设备。 1.2版(第1类和第2类) 2.0版(第1类和第2类) 2.1版(第1类和第2类) 在诺基亚Lumia 625和Lumia 635,Dell Latitude E6500和Dell Precision M6400上进行了测试。 每当我尝试连接到2.0或2.1设备时,都会出现问题。第一次尝试连接到每个设备时,一切都会顺利进行,并且连接将打开。当我随后关闭连接并重新连接设备时,故障就开始了。 在重新连接期间,连接将永远不会打开,调试器将抛出System.Exception: > Message: No further data is available. 另外,当连接失败时,即使我自己的应用程序终止了,Windows 8.1设备也会继续尝试自行(不成功)连接到蓝牙设备。有时Windows 8.1设备还将蓝牙设备显示为已连接,而该设备直观地显示它不再连接。重新连接蓝牙设备的唯一方法是取消配对并在Windows设备上关闭/重新启动蓝牙。 每当DeviceInformation连接失败后我尝试拨打新电话时,它将拒绝退回先前尝试连接的设备。 > Message: The service cannot be found in the specified name space. 奇怪的是,这1.2个设备运行良好。 清单文件: <m2:DeviceCapability Name="bluetooth.rfcomm"> <m2:Device Id="any"> <m2:Function Type="serviceId:00001101-0000-1000-8000-00805F9B34FB"/> </m2:Device> </m2:DeviceCapability> …

10
静态构造函数如何工作?
namespace MyNameSpace { static class MyClass { static MyClass() { //Authentication process.. User needs to enter password } public static void MyMethod() { //Depends on successful completion of constructor } } class Program { static void Main(string[] args) { MyClass.MyMethod(); } } } 这是我假设的顺序 静态构造函数的开始 静态构造函数的结尾 主开始 MyMethod的开始 主端 现在,在任何情况下,如果4将在2之前启动,我都会被搞砸。可能吗?

10
DataGridView自动调整和填充
我的专栏中有3列DataGridView。我想做的是让前2列自动适合内容的宽度,并让第3列填充剩余的空间。 是否可以在WinForms中进行?如果可以的话,我正在从EF DataContext加载数据。我提供了一张有关当前外观的图片。

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.