Questions tagged «c#»

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

3
如何在C#中创建异步方法?
我读过的每篇博客文章都告诉您如何使用C#使用异步方法,但是出于某些奇怪的原因,请不要解释如何构建自己的异步方法来使用。因此,我现在拥有使用我的方法的这段代码: private async void button1_Click(object sender, EventArgs e) { var now = await CountToAsync(1000); label1.Text = now.ToString(); } 我写的这个方法是CountToAsync: private Task<DateTime> CountToAsync(int num = 1000) { return Task.Factory.StartNew(() => { for (int i = 0; i < num; i++) { Console.WriteLine("#{0}", i); } }).ContinueWith(x => DateTime.Now); } 这是使用Task.Factory,是编写异步方法的最佳方法,还是应该以其他方式编写?
196 c#  async-await  c#-5.0 


16
如何遍历日期范围?
我什至不知道如何在不使用某些可怕的循环/计数器类型解决方案的情况下做到这一点。这是问题所在: 给了我两个日期,一个开始日期和一个结束日期,在指定的时间间隔内,我需要采取一些措施。例如:对于2009年3月3日至2009年3月26日之间的每个日期,我需要在列表中创建一个条目。所以我的输入是: DateTime StartDate = "3/10/2009"; DateTime EndDate = "3/26/2009"; int DayInterval = 3; 而我的输出将是具有以下日期的列表: 3/13/2009 3/16/2009 3/19/2009 3/22/2009 3/25/2009 那么,我该怎么做这样的事情呢?我考虑过使用一个for循环,该循环将在范围内的每一天之间使用一个单独的计数器进行迭代,如下所示: int count = 0; for(int i = 0; i < n; i++) { count++; if(count >= DayInterval) { //take action count = 0; } } 但是似乎还有更好的方法?
196 c#  asp.net  datetime  loops 

4
C#5异步CTP:为什么在EndAwait调用之前在生成的代码中将内部“状态”设置为0?
昨天,我在谈论新的C#“异步”功能,特别是深入研究了生成的代码和the GetAwaiter()/ BeginAwait()/ EndAwait()调用。 我们详细研究了C#编译器生成的状态机,其中有两个我们无法理解的方面: 为什么生成的类包含一个Dispose()方法和一个$__disposing变量,而它们似乎从未被使用过(而该类未实现IDisposable)。 为什么在state调用之前将内部变量设置为0 EndAwait(),通常0表示“这是初始入口点”。 我怀疑可以通过在async方法中做一些更有趣的事情来回答第一点,尽管如果有人有更多的信息,我很乐意听到。但是,这个问题更多地是关于第二点的。 这是一个非常简单的示例代码: using System.Threading.Tasks; class Test { static async Task<int> Sum(Task<int> t1, Task<int> t2) { return await t1 + await t2; } } ...这是为MoveNext()实现状态机的方法生成的代码。这是直接从Reflector复制的-我还没有解决难以形容的变量名: public void MoveNext() { try { this.$__doFinallyBodies = true; switch (this.<>1__state) { case 1: break; case 2: goto …
195 c#  asynchronous  c#-5.0 


9
如何将linq结果转换为HashSet或HashedSet
我有一个作为ISet的类的属性。我正在尝试将linq查询的结果放入该属性中,但无法弄清楚该怎么做。 基本上,寻找这的最后一部分: ISet<T> foo = new HashedSet<T>(); foo = (from x in bar.Items select x).SOMETHING; 也可以这样做: HashSet<T> foo = new HashSet<T>(); foo = (from x in bar.Items select x).SOMETHING;
195 c#  linq 

10
成员'<method>'不能通过实例引用进行访问
我正在使用C#,但遇到了这个问题: namespace MyDataLayer { namespace Section1 { public class MyClass { public class MyItem { public static string Property1{ get; set; } } public static MyItem GetItem() { MyItem theItem = new MyItem(); theItem.Property1 = "MyValue"; return theItem; } } } } 我在UserControl上有以下代码: using MyDataLayer.Section1; public class MyClass { protected …
195 c#  asp.net 

16
我可以将C#字符串值转换为转义的字符串文字吗
在C#中,我可以像在代码中一样将字符串值转换为字符串文字吗?我想将制表符,换行符等替换为其转义序列。 如果此代码: Console.WriteLine(someString); 产生: Hello World! 我想要这段代码: Console.WriteLine(ToLiteral(someString)); 生产: \tHello\r\n\tWorld!\r\n
195 c#  string  escaping 

19
ASP.NET Core依赖注入错误:尝试激活时无法解析类型的服务
我创建了一个.NET Core MVC应用程序,并使用依赖注入和存储库模式将存储库注入到控制器中。但是,我得到一个错误: InvalidOperationException:尝试激活“ WebApplication1.Controllers.BlogController”时,无法解析“ WebApplication1.Data.BloggerRepository”类型的服务。 模型(Blog.cs) namespace WebApplication1.Models { public class Blog { public int BlogId { get; set; } public string Url { get; set; } } } DbContext(BloggingContext.cs) using Microsoft.EntityFrameworkCore; using WebApplication1.Models; namespace WebApplication1.Data { public class BloggingContext : DbContext { public BloggingContext(DbContextOptions&lt;BloggingContext&gt; options) : base(options) { …

5
LINQ读取XML
我得到了这个XML文件: &lt;root&gt; &lt;level1 name="A"&gt; &lt;level2 name="A1" /&gt; &lt;level2 name="A2" /&gt; &lt;/level1&gt; &lt;level1 name="B"&gt; &lt;level2 name="B1" /&gt; &lt;level2 name="B2" /&gt; &lt;/level1&gt; &lt;level1 name="C" /&gt; &lt;/root&gt; 有人可以使用LINQ给我一个C#代码,这是打印此结果的最简单方法:( 请注意,如果它是一个level2节点,则需要额外的空间) A A1 A2 B B1 B2 C 目前,我得到了以下代码: XDocument xdoc = XDocument.Load("data.xml")); var lv1s = from lv1 in xdoc.Descendants("level1") select lv1.Attribute("name").Value; foreach (var lv1 …
194 c#  xml  linq  linq-to-xml 

8
C#中是否有指数运算符?
例如,是否存在操作员来处理此问题? float Result, Number1, Number2; Number1 = 2; Number2 = 2; Result = Number1 (operator) Number2; 过去,该^运算符曾用其他语言作为指数运算符,但在C#中是按位运算符。 我是否必须编写一个循环或包含另一个名称空间来处理指数运算?如果是这样,我该如何使用非整数处理指数运算?


16
返回匿名类型的结果?
使用下面的简单示例,使用Linq将多个表中的结果返回到SQL的最佳方法是什么? 说我有两个表: Dogs: Name, Age, BreedId Breeds: BreedId, BreedName 我想把所有的狗都还给他们BreedName。我应该让所有的狗都使用这样的东西而没有问题: public IQueryable&lt;Dog&gt; GetDogs() { var db = new DogDataContext(ConnectString); var result = from d in db.Dogs join b in db.Breeds on d.BreedId equals b.BreedId select d; return result; } 但是,如果我想要带有品种的狗并尝试这样做,则会遇到问题: public IQueryable&lt;Dog&gt; GetDogsWithBreedNames() { var db = new DogDataContext(ConnectString); var …
194 c#  linq  linq-to-sql 

3
等待vs Task.Wait-死锁?
我不太明白之间的差别Task.Wait和await。 我在ASP.NET WebAPI服务中具有类似于以下功能的内容: public class TestController : ApiController { public static async Task&lt;string&gt; Foo() { await Task.Delay(1).ConfigureAwait(false); return ""; } public async static Task&lt;string&gt; Bar() { return await Foo(); } public async static Task&lt;string&gt; Ros() { return await Bar(); } // GET api/test public IEnumerable&lt;string&gt; Get() { Task.WaitAll(Enumerable.Range(0, 10).Select(x =&gt; …

6
使用Dapper执行插入和更新
我对使用Dapper感兴趣-但据我所知,它仅支持查询和执行。我看不到Dapper包含一种插入和更新对象的方法。 鉴于我们的项目(大多数项目?)需要进行插入和更新,与dapper一起进行插入和更新的最佳实践是什么? 最好我们不必诉诸于ADO.NET参数构建方法等。 此时,我能想到的最佳答案是使用LinqToSQL进行插入和更新。有更好的答案吗?
194 c#  orm  dapper 

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.