Tag: C#的

在.NET 4中将C#对象转换为JSONstring

我有这样的课程: class MyDate { int year, month, day; } class Lad { string firstName; string lastName; MyDate dateOfBirth; } 我想将一个Lad对象转换成如下所示的JSONstring: { "firstName":"Markoff", "lastName":"Chaney", "dateOfBirth": { "year":"1901", "month":"4", "day":"30" } } (没有格式)。 我发现这个链接 ,但它使用了一个不在.NET 4中的命名空间。我也听说过JSON.NET ,但是他们的网站似乎在closures,而我并不热衷于使用外部DLL文件。 除了手动创buildJSONstring编写器之外,还有其他选项吗?

用MVVM与wpf对话的好习惯或不好的做法?

我最近有问题为我的WPF应用程序创build添加和编辑对话框。 我想在我的代码中做的就是这样的。 (我主要使用MVVM的viewmodel第一种方法) 调用对话窗口的ViewModel: var result = this.uiDialogService.ShowDialog("Dialogwindow Title", dialogwindowVM); // Do anything with the dialog result 它是如何工作的? 首先,我创build了一个对话服务: public interface IUIWindowDialogService { bool? ShowDialog(string title, object datacontext); } public class WpfUIWindowDialogService : IUIWindowDialogService { public bool? ShowDialog(string title, object datacontext) { var win = new WindowDialog(); win.Title = title; win.DataContext = datacontext; return win.ShowDialog(); […]

如何build立在C#中的URL的查询string?

从代码调用Web资源时的常见任务是构build一个查询string,以包含所有必要的参数。 虽然通过所有手段没有火箭科学,有一些漂亮的细节,你需要照顾像,附加一个&如果不是第一个参数,编码参数等。 这样做的代码很简单,但有点乏味: StringBuilder SB = new StringBuilder(); if (NeedsToAddParameter A) { SB.Append("A="); SB.Append(HttpUtility.UrlEncode("TheValueOfA")); } if (NeedsToAddParameter B) { if (SB.Length>0) SB.Append("&"); SB.Append("B="); SB.Append(HttpUtility.UrlEncode("TheValueOfB")); } } 这是一个常见的任务,人们会期望一个实用程序类的存在,使其更优雅和可读性。 扫描MSDN,我没有find一个 – 这让我到以下问题: 什么是你知道做上述最优雅的清洁的方式?

在C#中encryption和解密一个string

什么是最现代的(最好的)在C#中满足以下的方法? string encryptedString = SomeStaticClass.Encrypt(sourceString); string decryptedString = SomeStaticClass.Decrypt(encryptedString); 但是最小的问题涉及到盐,密钥,用byte []等操作。 一直在谷歌search和困惑,我发现(你可以看到类似的SO问清单,看看这是一个欺骗性的问题)。

你如何在C ++中声明一个接口?

我如何设置一个代表接口的类? 这只是一个抽象的基类吗?

为什么我应该使用指针而不是对象本身?

我来自Java背景,已经开始使用C ++中的对象。 但有一件事发生在我身上,人们经常使用指向对象的指针而不是对象本身,例如这个声明: Object *myObject = new Object; 而不是: Object myObject; 或者使用一个函数,比如testFunc() ,就像这样: myObject.testFunc(); 我们必须写: myObject->testFunc(); 但是我不明白为什么要这样做。 我会假设它与效率和速度有关,因为我们可以直接访问内存地址。 我对吗?

提高精神船长问题

我有助于提高精神船长的麻烦。 我需要parsing一个这样的文件: ROW int int [int, int] int [int, int] … 我能parsing它没有问题(感谢stackoverflow;)只有当我在第一个int后面添加一个'_'。 实际上,我认为船长在第一个int之后吃掉了行尾,所以第一个和第二个(在第二行)看起来只有一个int。 我不明白如何保持爱情,但吃空间。 我已经find了使用像这里和这里的自定义分析器的例子。 我试过qi :: blank,用单个规则点亮的自定义分析器('')不pipe我用什么队长,空间和eol总是吃东西。 我的语法是: 一行: struct rowType { unsigned int number; std::list<unsigned int> list; }; 完整的问题存储在一个结构中: struct problemType { unsigned int ROW; std::vector<rowType> rows; }; 行parsing器: template<typename Iterator> struct row_parser : qi::grammar<Iterator, rowType(), qi::space_type> { row_parser() : row_parser::base_type(start) { list […]

C中的macros需要括号

我试图在下面的代码中使用macrosSQR的定义: #define SQR(x) (x*x) int main() { int a, b=3; a = SQR(b+5); // Ideally should be replaced with (3+5*5+3), though not sure. printf("%d\n",a); return 0; } 它打印23 。 如果我将macros定义更改为SQR(x) ((x)*(x))那么输出如预期的那样为64 。 我知道C中的一个macros的调用用macros的定义来替代调用,但我仍然不明白,它是如何计算的23 。

声明大型数组时发生堆栈溢出exception

以下代码为我生成堆栈溢出错误 int main(int argc, char* argv[]) { int sieve[2000000]; return 0; } 我如何解决这个问题? 我正在使用Turbo C ++,但想保持我的代码在C中 编辑: 感谢您的build议。 上面的代码只是例如,我实际上声明在一个函数中的数组,而不是在主要的。 此外,我需要将数组初始化为零,所以当我使用malloc的时候,我发现calloc对我来说是完美的。 malloc / calloc也有优势,而不是在堆栈上分配,允许我使用variables声明大小。

数组大小在运行时没有dynamic分配是允许的?

我已经使用C ++几年了,今天我看到了一些代码,但是这怎么可能是完全合法的呢? int main(int argc, char **argv) { size_t size; cin >> size; int array[size]; for(size_t i = 0; i < size; i++) { array[i] = i; cout << i << endl; } return 0; } 在GCC下编译。 如何在没有new或malloc情况下在运行时确定大小? 只是为了仔细检查,我GOOGLE了一些和所有类似的代码我的声称给存储大小的错误。 即使Deitel的C ++如何编程p。 Common Programming Error 4.5下的261个状态: 只有常量可以用来声明自动和静态数组的大小。 启发我。