Tag: C#的

从stream中创build一个字节数组

从inputstream创build字节数组的首选方法是什么? 这是我目前使用.NET 3.5的解决scheme。 Stream s; byte[] b; using (BinaryReader br = new BinaryReader(s)) { b = br.ReadBytes((int)s.Length); } 读取和写入stream的块是一个更好的主意吗?

我将如何同步运行asynchronous任务<T>方法?

我正在学习asynchronous/等待,并遇到了需要同步调用asynchronous方法的情况。 我怎样才能做到这一点? asynchronous方法: public async Task<Customers> GetCustomers() { return await Service.GetCustomersAsync(); } 正常用法: public async void GetCustomers() { customerList = await GetCustomers(); } 我已经尝试使用以下内容: Task<Customer> task = GetCustomers(); task.Wait() Task<Customer> task = GetCustomers(); task.RunSynchronously(); Task<Customer> task = GetCustomers(); while(task.Status != TaskStatus.RanToCompletion) 我也从这里尝试了一个build议,但是当调度员处于暂停状态时它不起作用。 public static void WaitWithPumping(this Task task) { if (task == null) throw new […]

什么是“取消引用”指针?

请附上解释的例子。

将checkbox列表传入视图并将IENumerable拉出

我有一个将与用户关联的项目列表。 这是一对多的关系。 我想要传递到视图中的项目的整个列表,以便他们可以select那些还没有关联到他们(也看到那些已经关联)。 我想从这些创buildcheckbox。 然后我想把选定的那个发送回控制器来关联。 我怎么能通过所有这些列表,包括那些还没有关联的列表,并且可靠地将它们传回来关联? 这是我第一次尝试,但很明显,这不会工作,因为我将input的项目通过AllItems集合传入的项目,这些项目与用户本身的项目没有连接。 <div id="item-list"> @foreach (var item in Model.AllItems) { <div class="ui field"> <div class="ui toggle checkbox"> <input type="checkbox" id="item-@item.ItemID" name="Items" value="@item.Active" /> <label for="item-@item.ItemID">@item.ItemName</label> </div> </div> } </div>

为什么不从List <T>inheritance?

在计划我的计划时,我经常从一系列的想法开始: 足球队只是一个足球运动员的名单。 因此,我应该用下面的代表: var football_team = new List<FootballPlayer>(); 该列表的sorting表示球员列入名单的顺序。 但是后来我意识到球队也有其他属性,除了球员名单之外,还必须logging下来。 例如,本赛季得分总数,当前预算,统一颜色,代表球队名称的string等。 那么我想: 好吧,一个足球队就像一个球员列表,另外,它有一个名字(一个string )和一个总分数(一个int )。 .NET不提供存储足球队的课程,所以我将自己创build课程。 最相似和最相关的现有结构是List<FootballPlayer> ,所以我将inheritance它: class FootballTeam : List<FootballPlayer> { public string TeamName; public int RunningTotal } 但事实certificate, 一个指引说,你不应该从List<T>inheritance 。 这个指导方针在两方面都让我感到十分困惑。 为什么不? 显然List是以某种方式优化性能的 。 怎么会这样? 如果我扩展List会导致哪些性能问题? 什么会打破? 我看到的另一个原因是List是由Microsoft提供的,我无法控制它,所以在暴露“public API”之后我不能再改变它 。 但我很难理解这一点。 什么是公共API,我为什么要关心? 如果我目前的项目没有,也不可能拥有这个公共API,我可以放心地忽略这个指南吗? 如果我从Listinheritance,事实certificate我需要一个公共API,那么我会遇到什么困难? 为什么它甚至重要? 列表是一个列表。 什么可能改变? 我可能想要改变什么? 最后,如果微软不想让我inheritanceList ,他们为什么不把这个类sealed ? 还有什么我应该使用? […]

使用Thread.Abort()有什么问题

所以我知道你不应该使用 Thread.Abort() 但我从来没有得到一个很好的解释。 是否有性能损失或一些隐藏的陷阱? 我知道你不能忽略/吞下ThreadAbortException(这是有道理的)

C ++标准是否在C ++ 14中使用了不确定的值和未定义的行为?

如在初始化中涉及左值到右值的转换? 是int x = x; UB? C ++标准在第3.3.2节的声明中有一个令人惊讶的例子,其中一个int用它自己的不确定值进行初始化: int x = 12; { int x = x; } 这里第二个x是用自己的(不确定的)值初始化的。 – 结束示例 ] 哪个Johannes回答这个问题表明是未定义的行为,因为它需要一个左值到右值的转换。 在最新的C ++ 14草案标准N3936可以在这里find这个例子已经改为: unsigned char x = 12; { unsigned char x = x; } 这里第二个x是用自己的(不确定的)值初始化的。 – 结束示例 ] 在C ++ 14中,在不确定的值和未定义的行为方面有什么改变,导致了这个例子的改变?

访问数组越界有多危险?

访问数组之外​​的数组有多危险? 有时候可能会发生,我从数组外读取(我现在明白,然后访问我的程序的一些其他部分使用的内存,甚至超出),或者我试图设置一个值的数组以外的索引。 该程序有时会崩溃,但有时只是运行,只会给出意想不到的结果。 现在我想知道的是,这真的有多危险? 如果它损害了我的程序,那还不错。 另一方面,如果它破坏了我的程序之外的某些东西,因为我设法访问了一些完全不相关的内存,那么我想它是非常糟糕的。 我读了很多“什么都可能发生”, “细分可能是最不好的问题” ,“你的硬盘可能会变成粉红色,独angular兽可能会在你的窗下唱歌”,这是很好的,但真正的危险是什么? 我的问题: 从arrays外读取值可以损害除我的程序之外的任何东西吗? 我会想象只是看着事情不会改变什么,或者它会例如改变我碰巧到达的文件的“上次打开”属性? 除了我的程序之外,是否可以将数值设置在数组之外? 从这个stackoverflow问题我收集,有可能访问任何内存位置,没有安全保证。 我现在从XCode中运行我的小程序。 这是否为我的程序提供了额外的保护,使其无法到达自己的内存之外? 它会伤害XCode吗? 任何关于如何安全地运行我自己的错误代码的build议? 我使用OSX 10.7,Xcode 4.6 这是我的第一个Stackoverflow问题。 我花了很多时间阅读这个主题,但是我可能错过了很多资源。 如果你觉得我没有做足够的研究和/或你看到这个问题的其他问题,请告诉我。

如何recursion列出在C#中的目录中的所有文件?

如何recursion列出C#中的目录和子目录中的所有文件?

在C#中使用“using”

用户kokos通过提及using关键字回答了C#问题的精彩隐藏特性 。 你能详细说一下吗? 什么是使用的好用途?