Questions tagged «c#»

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


7
.NET Core控制台应用程序,如何在每个环境中配置appSettings?
我有一个.NET Core 1.0.0控制台应用程序和两个环境。我需要能够使用appSettings.dev.json并appSettings.test.json基于我在运行时设置的环境变量。通过依赖项注入,IHostingEnvironment和EnvironmentName env,这对于ASP.NET Core Web应用程序来说似乎很简单。变量,但是如何为控制台应用程序连接东西(除了编写自己的使用的自定义代码之外Microsoft.Framework.Configuration.EnvironmentVariables)? 谢谢。

4
从显式类型的ASP.NET Core API控制器(不是IActionResult)返回404
ASP.NET Core API控制器通常返回显式类型(如果创建新项目,则默认情况下会这样做),例如: [Route("api/[controller]")] public class ThingsController : Controller { // GET api/things [HttpGet] public async Task<IEnumerable<Thing>> GetAsync() { //... } // GET api/things/5 [HttpGet("{id}")] public async Task<Thing> GetAsync(int id) { Thing thingFromDB = await GetThingFromDBAsync(); if(thingFromDB == null) return null; // This returns HTTP 204 // Process thingFromDB, blah …

4
C#是否对if语句进行短路评估?
我相信C#能够判断结果后就立即停止评估if语句条件。因此,例如: if ( (1 < 0) && check_something_else() ) // this will not be called 由于条件的(1 < 0)值为false,&&因此无法满足条件,check_something_else()因此不会调用该条件。 C#如何使用异步函数评估if语句?是否等待两者返回?因此,例如: if( await first_check() && await second_check() ) // ??? 这会短路吗?

4
将两个列表映射到C#中的字典中
给定两个 相同大小的IEnumerables ,如何 使用Linq将其转换为a Dictionary ? IEnumerable<string> keys = new List<string>() { "A", "B", "C" }; IEnumerable<string> values = new List<string>() { "Val A", "Val B", "Val C" }; var dictionary = /* Linq ? */; 预期的输出是: A: Val A B: Val B C: Val C 我想知道是否有一些简单的方法来实现它。 我应该担心表现吗?如果我有大量收藏怎么办? 我没有一种更简单的方法来执行此操作,目前我正在这样做: 我有一个Extension方法,该方法将循环IEnumerable为我提供元素和索引号。 …

10
为什么会出现编译错误“使用未分配的局部变量”?
我的代码如下 int tmpCnt; if (name == "Dude") tmpCnt++; 为什么会出现错误“使用未分配的局部变量tmpCnt”? 我知道我没有明确初始化它,但是由于默认值表,0无论如何都使用了一个值类型。该参考还提醒我: 请记住,不允许在C#中使用未初始化的变量。 但是,如果默认情况下已经完成,为什么还要显式执行呢?如果我不必这样做,它是否会获得性能?
74 c#  .net 

3
使用C#.NET将“所有人”特权添加到文件夹
我使用下面的代码允许所有人访问文件夹: System.Security.AccessControl.DirectorySecurity sec = System.IO.Directory.GetAccessControl(directory, AccessControlSections.All); FileSystemAccessRule accRule = new FileSystemAccessRule("Everyone", FileSystemRights.Modify, AccessControlType.Allow); sec.AddAccessRule(accRule); // setACL sec.ResetAccessRule(accRule); 现在,将“所有人”用户添加到该文件夹​​中,但是没有分配任何权限。没有选中所有的读取,写入,执行等复选框。

3
类映射错误:“ T”必须是具有公共无参数构造函数的非抽象类型
在映射类我遇到错误“ T”的同时,它必须是具有公共无参数构造函数的非抽象类型,才能在通用类型或方法中将其用作参数“ T”。 以下是我的SqlReaderBase类 public abstract class SqlReaderBase<T> : ConnectionProvider { #region Abstract Methods protected abstract string commandText { get; } protected abstract CommandType commandType { get; } protected abstract Collection<IDataParameter> GetParameters(IDbCommand command); **protected abstract MapperBase<T> GetMapper();** #endregion #region Non Abstract Methods /// <summary> /// Method to Execute Select Queries …


8
在.NET中查找下一个TCP端口
我想为WCF服务调用创建一个新的net.tcp:// localhost:x / Service端点,并动态分配新的开放TCP端口。 我知道当我打开到给定服务器的连接时,TcpClient将分配一个新的客户端端口。 是否有一种简单的方法来查找.NET中的下一个打开的TCP端口? 我需要实际的数字,以便可以在上面构建字符串。0不起作用,因为我需要将该字符串传递给另一个进程,以便可以在该新通道上进行回调。
74 c#  .net  wcf  networking  tcp 

5
形成两个列表的并集的最简单方法
比较两个列表(例如A和B)的元素并仅将A中不存在的元素添加到A中的最简单方法是什么? 为了说明这一点,取列表A = {1,2,3}列表B = {3,4,5} 所以在操作AUB之后,我想要列表A = {1,2,3,4,5}
74 c#  .net  linq  list  union 



5
IEnumerable与IReadonlyCollection与ReadonlyCollection用于公开列表成员
我花了好几个小时思考一下暴露名单成员的话题。在与我类似的问题中,乔恩·斯基特(Jon Skeet)给出了一个很好的答案。请随时查看。 ReadOnlyCollection或IEnumerable用于公开成员集合? 我通常对公开列表非常偏执,尤其是在开发API时。 我一直使用IEnumerable公开列表​​,因为它非常安全,并且具有很大的灵活性。让我在这里使用示例: public class Activity { private readonly IList<WorkItem> workItems = new List<WorkItem>(); public string Name { get; set; } public IEnumerable<WorkItem> WorkItems { get { return this.workItems; } } public void AddWorkItem(WorkItem workItem) { this.workItems.Add(workItem); } } 任何针对IEnumerable进行编码的人在这里都是非常安全的。如果以后我决定使用有序列表或其他东西,它们的代码都不会中断,而且还是不错的。IEnumerable的缺点是可以将其强制转换回此类之外的列表。 因此,许多开发人员使用ReadOnlyCollection公开成员。这是非常安全的,因为它永远都不能返回列表。对我来说,我更喜欢IEnumerable,因为它提供了更多的灵活性,如果我想实现不同于列表的东西的话。 我提出了一个我更喜欢的新主意。使用IReadOnlyCollection: public class Activity { private readonly …

6
错误-与当前连接关联的事务已完成但尚未处理
我一直TransactionScope难以使用来将多个数据库查询包装到一个事务中,我正在将SqlBulkCopy使用批处理大小为500。当我将批处理大小增加到1000时,出现了错误: 与当前连接关联的事务已完成,但尚未处理。必须先处理事务,然后才能使用该连接执行SQL语句。 这是我正在使用的代码: using (var scope = new TransactionScope()) { using (var connection = (SqlConnection)customerTable.OpenConnection()) { var table1BulkCopy = new SqlBulkCopy(connection) { BatchSize = BATCH_SIZE, DestinationTableName = TableName1 }; table1BulkCopy.WriteToServer(table1DataTable); var table2BulkCopy = new SqlBulkCopy(connection) { BatchSize = BATCH_SIZE, DestinationTableName = TableName2 }; table2BulkCopy.WriteToServer(table2DataTable); var table3BulkCopy = new SqlBulkCopy(connection) { …

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.