Questions tagged «c#»

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

3
取消任务中使用的取消令牌的正确方法是吗?
我有创建取消令牌的代码 public partial class CardsTabViewModel : BaseViewModel { public CancellationTokenSource cts; public async Task OnAppearing() { cts = new CancellationTokenSource(); // << runs as part of OnAppearing() 使用它的代码: await GetCards(cts.Token); public async Task GetCards(CancellationToken ct) { while (!ct.IsCancellationRequested) { App.viewablePhrases = App.DB.GetViewablePhrases(Settings.Mode, Settings.Pts); await CheckAvailability(); } } 如果用户离开运行上面代码的屏幕,则该代码稍后会取消此取消令牌: public void …

5
c#-Microsoft Graph API-检查文件夹是否存在
我正在使用Microsoft Graph API,并且正在创建一个文件夹,如下所示: var driveItem = new DriveItem { Name = Customer_Name.Text + Customer_LName.Text, Folder = new Folder { }, AdditionalData = new Dictionary<string, object>() { {"@microsoft.graph.conflictBehavior","rename"} } }; var newFolder = await App.GraphClient .Me .Drive .Items["id-of-folder-I-am-putting-this-into"] .Children .Request() .AddAsync(driveItem); 我的问题是如何检查此文件夹是否存在以及是否获取该文件夹的ID?

2
实体框架中的用户定义表生成了错误的查询
我认为我目前在Entity Framework 6中以及可能在ADO.NET中遇到错误。由于有最后期限,所以我不确定是否可以等待此错误被修复,希望有人可以帮助我进行整洁的工作。 问题是查询在应为0.01和0.05的位置使用值1和5。但是奇怪的是0.1似乎可以正常工作 当前生成的查询是:(从SQL Server Profiler获取) declare @p3 dbo.someUDT insert into @p3 values(NULL,5) insert into @p3 values(5,0.10) insert into @p3 values(NULL,1) insert into @p3 values(1,2) exec sp_executesql N'Select * from @AName',N'@AName [dbo].[someUDT] READONLY',@AName=@p3 正确的代码是: declare @p3 dbo.someUDT insert into @p3 values(NULL,0.05) insert into @p3 values(0.05,0.10) insert into @p3 values(NULL,0.01) …

1
如果在ToLookup之前放一个额外的ToArray会更快吗?
我们有一个简短的方法将.csv文件解析为查找: ILookup<string, DgvItems> ParseCsv( string fileName ) { var file = File.ReadAllLines( fileName ); return file.Skip( 1 ).Select( line => new DgvItems( line ) ).ToLookup( item => item.StocksID ); } 以及DgvItems的定义: public class DgvItems { public string DealDate { get; } public string StocksID { get; } public string StockName …
10 c#  linq 


1
未从FirstOrDefault公开的可空引用类型信息
我想测试C#8.0中新的可为空的引用类型功能。 我启动了一个针对.NET Core 3.0的新项目,在.csproj文件中启用了可为空的引用类型,并开始编码。我创建了一个简单的列表,该列表采用a string[]并string在等于的数组中返回abc。现在,由于不确定abc该数组中是否实际存在,因此我使用FirstOrDefault(),null如果未找到匹配项,则默认为。 using System; using System.Linq; public string FindArgument(string[] args) { var arg = args.FirstOrDefault(x => x == "abc"); return arg; } 我的方法的返回值string,这应该现在是非空的类型。由于FirstOrDefault()可能会返回null,因此我希望上述方法在返回may null arg变量时会产生警告。它不是。 查看FirstOrDefault()Visual Studio中的签名,很清楚为什么:该方法返回一个string,而不是string?我期望的可为空的等效项。 使用下面的方法主体确实会产生我期望的警告: var arg = args.Contains("abc") ? "abc" : null; return arg; System.Linq在面向.NET Core 3.0时,系统库(在此示例中)是否真的不公开可空性信息?

5
如何在Azure表存储中使用partitionkey加快查询速度
我们如何提高查询速度? 在执行以下查询的范围内,我们大约有100个消费者1-2 minutes。这些运行中的每个运行都代表一个消耗函数的运行。 TableQuery<T> treanslationsQuery = new TableQuery<T>() .Where( TableQuery.CombineFilters( TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, sourceDestinationPartitionKey) , TableOperators.Or, TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, anySourceDestinationPartitionKey) ) ); 该查询将产生大约5000个结果。 完整代码: public static async Task<IEnumerable<T>> ExecuteQueryAsync<T>(this CloudTable table, TableQuery<T> query) where T : ITableEntity, new() { var items = new List<T>(); TableContinuationToken token = null; do { TableQuerySegment<T> seg …

7
如何在C#中触发事件之前阻止代码流
在这里,我们有Grid一个Button。当用户单击按钮时,将执行Utility类中的方法,该方法强制应用程序接收对Grid的单击。代码流必须在此处停止,并且直到用户单击时才能继续Grid。 在此之前,我有一个类似的问题: 等到用户单击C#WPF 在这个问题中,我使用了有效的async / await得到了答案,但是由于我打算将其用作API的一部分,因此我不想使用async / await,因为消费者随后必须用我不想要的异步。 如何编写Utility.PickPoint(Grid grid)方法以实现此目标? 我看到这可能有所帮助,但说实话,我对此并不完全了解: 阻塞直到事件完成 将其视为类似于Console应用程序中的Console.ReadKey()方法的东西。当我们调用此方法时,代码流将停止,直到我们输入一些值为止。在我们输入内容之前,调试器不会继续。我想要PickPoint()方法的确切行为。代码流将停止,直到用户单击网格为止。 <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfApp1" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="3*"/> <RowDefinition Height="1*"/> </Grid.RowDefinitions> <Grid x:Name="View" Background="Green"/> <Button Grid.Row="1" Content="Pick" Click="ButtonBase_OnClick"/> </Grid> </Window> public partial class MainWindow : Window { public MainWindow() { …

3
在EF Core中指定Azure SQL Server版本而不中断本地开发
实体框架核心引入了HasServiceTier和HasPerformanceLevel方法来更改Azure SQL服务器的版本。您可以像这样在OnModelCreating中使用它们: protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.HasServiceTier("Basic"); modelBuilder.HasPerformanceLevel("Basic"); } 如果您使用Add-Migration Add-Migration,您将获得如下迁移: public partial class ChangedDatabaseServiceTierToBasic : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AlterDatabase() .Annotation("SqlServer:EditionOptions", "EDITION = 'Basic', SERVICE_OBJECTIVE = 'Basic'"); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.AlterDatabase() .OldAnnotation("SqlServer:EditionOptions", "EDITION = 'Basic', SERVICE_OBJECTIVE = 'Basic'"); …

1
将Visual Studio调试器与在Kubernetes中运行的ASP.NET Core Web应用一起使用吗?
我们的团队希望能够针对内部Kubernetes集群的ASP.NET应用程序的已部署实例运行Visual Studio调试器。我需要弄清楚如何完成拼图,但是我对Visual Studio 2019不太熟悉。 Docker映像使用官方的.NET Core映像进行编译,并且/ vsdbg填充了最新版本(不支持--attach)。 Visual Studio可与我的Docker桌面一起使用。 Kubectl已正确配置。我可以使用Docker Desktop随附的kubernetes集群或我们内部的kubernetes集群进行测试。 Azure当前不是一种选择。我从文档中了解到,这就是Microsoft希望我执行的操作。 我应该如何配置Visual Studio才能做到这一点?

3
检测是Windows服务已被删除的时间
有没有一种方法可以检测Windows服务何时已删除?我已经检查了事件日志,但它没有选择仅添加的已删除操作。 我相信可能有一种使用审核日志的方法,但是我不确定该怎么做? 任何帮助深表感谢。 谢谢

4
C#泛型方法选择
我试图用C#编写可与不同维度的几何实体一起使用的通用算法。 在以下人为设计的示例中,我Point2和和Point3都实现了一个简单的IPoint接口。 现在,我有一个GenericAlgorithm调用函数的函数GetDim。根据类型,此函数有多个定义。还为所有实现的东西定义了一个后备功能IPoint。 我最初希望以下程序的输出为2、3。但是,它的值为0、0。 interface IPoint { public int NumDims { get; } } public struct Point2 : IPoint { public int NumDims => 2; } public struct Point3 : IPoint { public int NumDims => 3; } class Program { static int GetDim<T>(T point) where T: IPoint => 0; …
9 c#  generics 

3
除了将所有内容添加到Startup类之外,还有一种健壮的方法来在ASP.NET Core 3.1中注册依赖项吗?
我有一个ASP.NET Core 3.1项目。通常,我使用类中的ConfigureServices()方法注册任何依赖Startup.cs项。 但是,我发现自己不得不注册许多依赖项,而且ConfigureServices()看起来很大!我知道我可以创建一个静态方法的扩展方法,并从ConfigureService()类中调用它,但是想知道是否有更好的方法。 如果有一种方法可以在IoC容器中注册依赖项,而不必一次定义它们 services.AddScoped<Interface, Class>(); .... 200 lines later services.AddScoped<ISettings, Settings>()

4
什么是“返回” C#的返回类型?
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 3个月前关闭。 我正在制作一个控制台应用程序,并且有一个“菜单”,用户可以在其中输入信息以创建新的Person对象。以下是方法内部。 Write("Please enter the first name: ", false); string fName = Console.ReadLine().ToUpper(); Write("Please enter the middle initial: ", false); string mInitial = Console.ReadLine().ToUpper(); Write("Please enter the last name: ", false); string lName = Console.ReadLine().ToUpper(); 像这样 我希望用户确定自己不想结交新朋友时可以随时退出该方法。因此,我想创建一个名为“ CheckExit”的新方法,如果他们键入“ EXIT”,它将保留“ CreatePerson”方法。因此,我希望“ CheckExit”返回收益。否则,我必须在每个输入之后添加一个“ if”语句,并且变得混乱。 这可能吗?退货有退货类型吗?这样做的正确方法是什么?

8
查询执行非常缓慢,是否有任何方法可以进一步改善它?
我有以下查询,由于有很多SUM函数调用,我的查询运行太慢。我的数据库中有很多记录,我希望获得当年和去年(过去30天,过去90天和过去365天)的报告: SELECT b.id as [ID] ,d.[Title] as [Title] ,e.Class as [Class] ,Sum(CASE WHEN a.DateCol >= DATEADD(MONTH,-1,GETDATE()) THEN a.col1 ELSE 0 END) as [Current - Last 30 Days Col1] ,Sum(CASE WHEN a.DateCol >= DATEADD(MONTH,-1,GETDATE()) THEN a.col2 ELSE 0 END) as [Current - Last 30 Days Col2] ,Sum(CASE WHEN a.DateCol >= DATEADD(QUARTER,-1,GETDATE()) …

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.