Questions tagged «c#»

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

1
使用SqlCommand Async方法处理大数据的性能糟糕
使用异步调用时,我遇到了主要的SQL性能问题。我创建了一个小案例来演示该问题。 我在驻留在我们LAN中的SQL Server 2016上创建了一个数据库(因此没有localDB)。 在该数据库中,我有一个WorkingCopy包含2列的表: Id (nvarchar(255, PK)) Value (nvarchar(max)) DDL CREATE TABLE [dbo].[Workingcopy] ( [Id] [nvarchar](255) NOT NULL, [Value] [nvarchar](max) NULL, CONSTRAINT [PK_Workingcopy] PRIMARY KEY CLUSTERED ([Id] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] …


17
战略模式的真实例子
我一直在阅读有关OCP主体以及如何使用策略模式来实现此目的的信息。 我打算尝试向几个人解释这一点,但是我能想到的唯一示例是根据“订单”的状态使用不同的验证类。 我已经在线阅读了几篇文章,但这些文章通常不会描述使用该策略的真实原因,例如生成报告/账单/验证等。 您是否认为现实世界中有常见的策略模式示例?

3
在WinForms设计器中显示控件层次结构
我们的一位客户有一个旧的WinForms应用程序,其中包含带有很多控件的表单。这些控件中的一些控件具有很深的层次结构,这使得在设计器中很难选择它们。 我需要了解此层次结构才能对应用程序进行修改以更正某些错误。有没有办法清楚地看到这个层次结构?例如,当您掌握HTML层次结构中的位置时,是否有类似于.aspx源文件中可见的内容(HTML> Body> div>等)?还是更直观的东西?

7
。包含自定义类对象列表的()
我正在尝试.Contains()在自定义对象列表上使用该功能 这是清单: List<CartProduct> CartProducts = new List<CartProduct>(); 和CartProduct: public class CartProduct { public Int32 ID; public String Name; public Int32 Number; public Decimal CurrentPrice; /// <summary> /// /// </summary> /// <param name="ID">The ID of the product</param> /// <param name="Name">The name of the product</param> /// <param name="Number">The total number of that …
95 c#  list  class  contains 

17
从ViewModel关闭窗口
我使用创建了一个Login,window control以允许用户登录到WPF我正在创建的应用程序。 到目前为止,我已经创建了一个检查用户是否已经在为正确的凭据进入了一个方法username,并password在textbox登录屏幕,上binding2 properties。 我是通过创建一个bool像这样的方法来实现的。 public bool CheckLogin() { var user = context.Users.Where(i => i.Username == this.Username).SingleOrDefault(); if (user == null) { MessageBox.Show("Unable to Login, incorrect credentials."); return false; } else if (this.Username == user.Username || this.Password.ToString() == user.Password) { MessageBox.Show("Welcome " + user.Username + ", you have successfully logged …
95 c#  wpf  mvvm 


2
将同步代码包装为异步调用
我在ASP.NET应用程序中有一个方法,要花大量时间才能完成。在一个用户请求期间,此方法的调用最多可能发生3次,具体取决于用户提供的缓存状态和参数。每次通话大约需要1-2秒才能完成。该方法本身是对服务的同步调用,无法覆盖实现。 因此,对该服务的同步调用如下所示: public OutputModel Calculate(InputModel input) { // do some stuff return Service.LongRunningCall(input); } 方法的用法是(请注意,方法的调用可能会发生多次): private void MakeRequest() { // a lot of other stuff: preparing requests, sending/processing other requests, etc. var myOutput = Calculate(myInput); // stuff again } 我尝试从自己的角度更改实现,以提供此方法的同步工作,这就是到目前为止的内容。 public async Task<OutputModel> CalculateAsync(InputModel input) { return await Task.Run(() => …

3
在WPF中安全地访问UI(主)线程
我有一个应用程序,该应用程序每次以以下方式更新我正在监视的日志文件(附加新文本)时都会更新我的datagrid: private void DGAddRow(string name, FunctionType ft) { ASCIIEncoding ascii = new ASCIIEncoding(); CommDGDataSource ds = new CommDGDataSource(); int position = 0; string[] data_split = ft.Data.Split(' '); foreach (AttributeType at in ft.Types) { if (at.IsAddress) { ds.Source = HexString2Ascii(data_split[position]); ds.Destination = HexString2Ascii(data_split[position+1]); break; } else { position += at.Size; } …

7
如何使Visual Studio不将{放在新行上?
如果我有这样的代码 if(true){ 然后我添加 } 它变成了 if (true) { } 但我希望它保持格式 if (true) { } 即使我复制具有if这种代码的代码,它也会转换为更长的版本。 PS我知道使用较长版本是C ++和C#标准,但是我确实来自其他标准,使用较短版本对我来说更容易。 我敢打赌有些格式化程序选项可以关闭或更改。

13
在C#中打印数组的所有内容
我尝试在使用一些更改数组的方法后将其内容打印出来,在Java中,我使用以下方法: System.out.print(Arrays.toString(alg.id)); 我该如何在C#中做到这一点?
95 c#  .net  arrays  linq 

5
我是否应该担心“此异步方法缺少'await'运算符,并且将同步运行”警告
我有一个暴露一些异步方法的接口。更具体地说,它具有定义的返回Task或Task <T>的方法。我正在使用async / await关键字。 我正在实现此接口。但是,在其中某些方法中,此实现没有任何等待。因此,我收到编译器警告“此异步方法缺少'await'运算符,将同步运行...” 我知道为什么会收到错误,但想知道在这种情况下是否应该对它们采取任何措施。忽略编译器警告是错误的。 我知道我可以通过等待Task.Run来修复它,但是对于仅执行一些廉价操作的方法来说,这是错误的。听起来也好像会给执行增加不必要的开销,但是由于不确定async关键字,因此我也不确定是否已经存在。 我应该只是忽略警告,还是有办法解决我所没有看到的问题?

9
如何检查对象是否可在C#中序列化
我正在寻找一种简单的方法来检查C#中的对象是否可序列化。 众所周知,您可以通过实现ISerializable接口或将[Serializable]放在类的顶部来使对象可序列化。 我正在寻找的是一种无需查看类即可获取其属性的快速检查方法。使用is语句,该接口将很快。 使用@Flard的建议,这是我想出的代码,尖叫是有更好的方法的。 private static bool IsSerializable(T obj) { return ((obj is ISerializable) || (Attribute.IsDefined(typeof (T), typeof (SerializableAttribute)))); } 甚至更好的方法是获取对象的类型,然后在该类型上使用IsSerializable属性: typeof(T).IsSerializable 请记住,尽管这似乎只是我们要处理的类,如果该类包含其他类,您可能要检查所有这些类,或者尝试进行序列化并等待@pb指出的错误。
94 c#  serialization 


14
如何尝试为Enum值解析?
我想编写一个函数,可以针对的可能值验证给定值(作为字符串传递)enum。如果匹配,则应返回枚举实例;否则,应返回默认值。 该函数可能在内部不使用try/ catch,这排除了using Enum.Parse,当给定无效参数时会抛出异常。 我想沿TryParse函数使用一些东西来实现这一点: public static TEnum ToEnum<TEnum>(this string strEnumValue, TEnum defaultValue) { object enumValue; if (!TryParse (typeof (TEnum), strEnumValue, out enumValue)) { return defaultValue; } return (TEnum) enumValue; }
94 c#  enums 

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.