Tag: C#的

从IEnumerable转换为List

我想从IEnumerable<Contact>转换为List<Contact> 。 我怎样才能做到这一点?

如何用Html.TextBoxFor设置默认值?

简单的问题是,如果使用ASP.NET MVC Framework 1中的Html Helper,则很容易在文本框上设置默认值,因为存在重载Html.TextBox(string name, object value) 。 当我尝试使用Html.TextBoxFor方法时,我的第一个猜测是尝试以下哪个不起作用: <%: Html.TextBoxFor(x => x.Age, new { value = "0"}) %> 我现在应该坚持Html.TextBox(string,对象)吗?

将对象序列化为XML

我有一个C#类,我已经inheritance。 我已经成功“build立”了这个对象。 但是我需要将对象序列化为XML。 有一个简单的方法来做到这一点? 看起来类已经设置为序列化,但我不知道如何获得XML表示。 我的类定义如下所示: [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://www.domain.com/test")] [System.Xml.Serialization.XmlRootAttribute(Namespace = "http://www.domain.com/test", IsNullable = false)] public partial class MyObject { … } 这是我想我可以做的,但它不工作: MyObject o = new MyObject(); // Set o properties string xml = o.ToString(); 如何获取此对象的XML表示forms?

函数模板的默认模板参数

为什么仅在类模板上允许默认的模板参数? 为什么我们不能在成员函数模板中定义一个默认types? 例如: struct mycclass { template<class T=int> void mymember(T* vec) { // … } }; 相反,C ++强制默认模板参数只能在类模板上使用。

如何在不等待的情况下安全地调用C#中的asynchronous方法

我有一个不返回数据的async方法: public async Task MyAsyncMethod() { // do some stuff async, don't return any data } 我从另一个返回一些数据的方法调用这个: public string GetStringData() { MyAsyncMethod(); // this generates a warning and swallows exceptions return "hello world"; } 在不等待它的情况下调用MyAsyncMethod()会导致在Visual Studio中出现“ 因为此调用未被等待,当前方法在调用完成之前继续运行 ”警告。 在该警告的页面上,它指出: 只有在确定不希望等待asynchronous调用完成并且调用的方法不会引发任何exception时 ,才应该考虑抑制警告。 我确定我不想等待电话完成; 我不需要或有时间。 但是这个调用可能会引发exception。 我已经偶然发现了这个问题几次,我确定这是一个常见的问题,必须有一个共同的解决scheme。 如何在不等待结果的情况下安全地调用asynchronous方法? 更新: 对于提示我只是等待结果的人,这是响应我们的Web服务(ASP.NET Web API)上的Web请求的代码。 等待在UI上下文中保持UI线程空闲,但等待Web请求调用等待Task完成,然后再响应请求,从而无需理由地增加响应时间。

你如何使用linq扩展方法执行左外连接

假设我有一个左外连接,如下所示: from f in Foo join b in Bar on f.Foo_Id equals b.Foo_Id into g from result in g.DefaultIfEmpty() select new { Foo = f, Bar = result } 我将如何使用扩展方法来expression相同的任务? 例如 Foo.GroupJoin(Bar, f => f.Foo_Id, b => b.Foo_Id, (f,b) => ???) .Select(???)

在C#中的双精度小数点后两位?

我想在C#中保留两位小数的double值,我该怎么做? double inputValue = 48.485; 结束后 inputValue = 48.49; 相关: C# – 如何四舍五入小数点后两位小数(输出在页面上)

这是什么=! 运营商?

我对这个代码感到惊讶: if (a =! b) { // let it be on false … } 但a从来没有被赋值。 这个操作员是关于什么的?

什么是基指针和堆栈指针? 他们指的是什么?

使用来自维基百科的这个例子 ,其中DrawSquare()调用DrawLine() (请注意,此图在顶部有高地址,顶部是低地址)。 任何人都可以解释一下在这种情况下ebp和esp是什么? 从我看到的,我会说堆栈指针始终指向堆栈的顶部,基指针指向当前函数的开始? 或者是什么? 编辑:我的意思是在Windows程序的上下文中 edit2: eip也是如何工作的? 编辑3:我从MSVC ++有以下代码: var_C= dword ptr -0Ch var_8= dword ptr -8 var_4= dword ptr -4 hInstance= dword ptr 8 hPrevInstance= dword ptr 0Ch lpCmdLine= dword ptr 10h nShowCmd= dword ptr 14h 他们似乎都是dword,因此每个字节占4个字节。 所以我可以看到从实例到4个字节的var_4有差距。 他们是什么? 我认为这是返回地址,可以在维基百科的图片中看到? (编者按:从迈克尔的回答中删除了很长的一句话,这不属于问题的范围,但后续的问题被编辑了): 这是因为函数调用的stream程是: * Push parameters (hInstance, etc.) * Call function, which pushes […]

无法复制文件,访问path被拒绝

我正在使用Visual Studio 2005之后,从版本控制代码正确运行c#.net应用程序,但做了一些修改后,当我build立我得到这样的错误。 错误383无法将文件“.. \ root \ leaf \ Bin \ Debug \ test.Resources.xml”复制到“Bin \ Debug \ test.Resources.xml”。 访问“Bin \ Debug \ test.Resources.xml”path被拒绝。 li.rollmodel 有没有人知道为什么会出现这个问题? 编辑我可以看到我的完整的项目源代码物理文件夹是只读的,我无法删除该只读属性 首先任何机构告诉我如何删除已删除的文件夹的只读属性,但仍显示一个,我试图从版本控制端也同样的效果。