Tag: C#的

Json.NET序列化具有根名称的对象

在我的networking应用程序中,我使用的是Newtonsoft.Json,我有以下对象 [Newtonsoft.Json.JsonObject(Title = "MyCar")] public class Car { [Newtonsoft.Json.JsonProperty(PropertyName = "name")] public string Name{get;set;} [Newtonsoft.Json.JsonProperty(PropertyName = "owner")] public string Owner{get;set;} } 我想序列化它们的根名称(类名称)。 这是使用所需的格式 {'MyCar': { 'name': 'Ford', 'owner': 'John Smith' } } 我知道我可以用匿名对象来做到这一点,但是在Newtonsoft.Json库中有任何属性或其他方式吗?

Clipboard.GetText返回null(空string)

我的剪贴板填充文本,但是当我运行 string clipboardData = Clipboard.GetText(System.Windows.Forms.TextDataFormat.Text); 我找回一个空的string。 我玩过各种forms的电话,包括: string clipboardData = Clipboard.GetText(); string clipboardData = Clipboard.GetText(System.Windows.Forms.TextDataFormat.UnicodeText); 但是结果一样。 我错过了什么明显的?

明确地调用析构函数

我明白,在大多数情况下,我们不应该明确地调用析构函数。 不过,我从C ++ 11 Standard N3485 Section 13.4.5模板参数中看到了一个例子: 显式析构函数调用具有类模板专用化types的对象可以显式指定模板参数。 例: template<class T> struct A { ~A(); }; void f(A<int>* p, A<int>* q) { p->A<int>::~A(); // OK: destructor call q->A<int>::~A<int>(); // OK: destructor call } 在我看来,在这种情况下我们可以明确地调用析构函数,你能向我解释为什么? 在这个例子中,这些析构函数调用是什么意思? 为什么他们是合理的? 另一个问题: 除了当我们正在实施的placement delete ,我们可以明确调用析构函数的情况是什么? 谢谢。 编辑:我从C ++常见问题find,我们不应该显式调用本地variables的析构函数。

未定义的sqrt引用(或其他math函数)

我有这个简单的代码: max = (int) sqrt (number); 并在头上我有: #include <math.h> 但是应用程序仍然说对sqrt未定义引用。 你有什么问题吗? 它看起来像一切应该没问题。

JSON.NET – 如何反序列化接口实例的集合?

我想通过json.net序列化这段代码: public interface ITestInterface { string Guid {get;set;} } public class TestClassThatImplementsTestInterface1 { public string Guid { get;set; } } public class TestClassThatImplementsTestInterface2 { public string Guid { get;set; } } public class ClassToSerializeViaJson { public ClassToSerializeViaJson() { this.CollectionToSerialize = new List<ITestInterface>(); this.CollectionToSerialize.add( new TestClassThatImplementsTestInterface2() ); this.CollectionToSerialize.add( new TestClassThatImplementsTestInterface2() ); } List<ITestInterface> CollectionToSerialize { get;set; […]

ifstream打开失败时如何获得错误信息

ifstream f; f.open(fileName); if ( f.fail() ) { // I need error message here, like "File not found" etc. – // the reason of the failure } 如何获取错误信息为string?

为什么C#不允许像C ++这样的非成员函数

C#将不允许编写非成员函数,每个方法都应该是类的一部分。 我认为这是所有CLI语言的限制。 但是我错了,我发现C ++ / CLI支持非成员函数。 编译时,编译器会使该方法成为某个未命名类的成员。 这是C ++ / CLI标准所说的, [注:非成员函数被CLI视为某些未命名类的成员; 但是,在C ++ / CLI源代码中,这样的函数不能用该类名显式限定。 尾注] 元数据中非成员函数的编码是未指定的。 [注意:这不会引起互操作问题,因为这些function不能公开显示。 尾注] 所以我的问题是为什么不C#实现这样的东西? 或者你认为不应该有非会员职能,每种方法都应该属于某一类? 我的意见是有非会员function支持,这有助于避免污染类的界面。 有什么想法吗..?

如何更改XML属性

如何使用C#更改XML文件中某个元素的属性?

C#sorting和OrderBy比较

我可以使用Sort或OrderBy对列表进行sorting。 哪一个更快? 两个工作在相同的algorithm? List<Person> persons = new List<Person>(); persons.Add(new Person("P005", "Janson")); persons.Add(new Person("P002", "Aravind")); persons.Add(new Person("P007", "Kazhal")); 1。 persons.Sort((p1,p2)=>string.Compare(p1.Name,p2.Name,true)); 2。 var query = persons.OrderBy(n => n.Name, new NameComparer()); class NameComparer : IComparer<string> { public int Compare(string x,string y) { return string.Compare(x, y, true); } }

使用LINQ将一个数字序列无间隙地分组

用这个数组int[]{ 1, 2, 3, 4, 7, 8, 11, 15,16,17,18 }; 我怎样才能转换为这个string数组"1-4","7-8","11","15-18" build议? Linq?