Tag: C#的

为什么我更喜欢使用成员初始化列表?

我偏爱使用成员初始化列表与我的构造函数…但我早已忘记了背后的原因… 你在构造函数中使用成员初始化列表吗? 如果是这样,为什么? 如果没有,为什么不呢?

将int转换为C ++中的string最简单的方法

什么是从int转换为C ++中的等效string的最简单的方法。 我知道两种方法。 有没有更简单的方法? 1。 int a = 10; char *intStr = itoa(a); string str = string(intStr); 2。 int a = 10; stringstream ss; ss << a; string str = ss.str();

如何configuration应用程序在DPI设置较高的机器上正确运行(例如150%)?

我已经在C#中创build了一个简单的Winforms应用程序。 当我在高DPI设置(例如150%)的机器上运行应用程序时,应用程序会被放大。 到现在为止还挺好! 但是,不是使用更高的字体来渲染字体,而是将所有的文字都放大。 这当然会导致非常模糊的文本(像button等所有控件)。 窗户不应该照顾正确地呈现文本? 例如,我的应用程序的标题栏呈现清晰。

LINQ在特定属性上的Distinct()

我正在玩LINQ来了解它,但我不知道如何使用Distinct,当我没有一个简单的列表(一个简单的列表整数很容易做,这不是问题)。 我如果想在对象的一个或多个属性的列表上使用Distinct ? 例如:如果一个对象是Person ,带有Property Id 。 我怎样才能得到所有的人,并使用对象的属性Id使用Distinct ? Person1: Id=1, Name="Test1" Person2: Id=1, Name="Test1" Person3: Id=2, Name="Test2" 我怎样才能得到Person1和Person3? 那可能吗? 如果LINQ不可能,根据.NET 3.5中的一些属性,最好的办法是拥有一个Person列表?

在Windows窗体应用程序中保存应用程序设置的最佳实践

我想实现的是非常简单的:我有一个Windows窗体(.NET 3.5)应用程序使用一个path来阅读信息。 该path可以由用户通过使用我提供的选项来修改。 现在,我想将path值保存到一个文件供以后使用。 这将是保存到这个文件的许多设置之一。 该文件将直接位于应用程序文件夹中。 我明白有三个选项可用: ConfigurationSettings文件(appname.exe.config) 注册处 自定义XML文件 我读了.NETconfiguration文件不能预见将值保存到它。 至于registry,我想尽可能远离它。 这是否意味着我应该使用自定义XML文件来保存configuration设置? 如果是这样,我想看看(C#)的代码示例。 关于这个问题我还见过其他的讨论,但是我还不清楚。

为什么我总是用rand()得到相同的随机数序列?

这是我第一次尝试随机数与C(我错过了C#)。 这是我的代码: int i, j = 0; for(i = 0; i <= 10; i++) { j = rand(); printf("j = %d\n", j); } 使用这段代码,我每次运行代码时都会得到相同的序列。 但是如果我在for循环之前添加srand(/*somevalue/*) ,它会产生不同的随机序列。 谁能解释为什么?

C ++:“std :: endl”vs“\ n”

许多C ++书籍包含这样的示例代码… std::cout << "Test line" << std::endl; …所以我也一直这样做。 但是我已经看到了很多来自这样的开发人员的代码: std::cout << "Test line\n"; 是否有技术上的理由相对于另一个,或只是一个编码风格的问题?

显式的关键字是什么意思?

有人在C ++中发布了关于explicit关键字含义的另一个问题的评论。 那么,这是什么意思?

如何testingstringstream操作符>>是否parsing了一个不好的types并跳过它

我有兴趣讨论使用stringstream分析多个types的行的方法。 我将首先看以下行: "2.832 1.3067 nana 1.678" 现在让我们假设我有一个很长的行,有多个strings和doubles 。 解决这个问题的显而易见的方法是标记string,然后检查每个string的转换。 我有兴趣跳过这第二步,直接使用stringstream只find数字。 我想通过这种方法来读取string,并检查是否已经设置了failbit ,如果我尝试将stringparsing为双failbit ,那么这将是一个好办法。 说我有以下代码: string a("2.832 1.3067 nana 1.678"); stringstream parser; parser.str(a); for (int i = 0; i < 4; ++i) { double b; parser >> b; if (parser.fail()) { std::cout << "Failed!" << std::endl; parser.clear(); } std::cout << b << std::endl; } 它会打印出以下内容: 2.832 […]

浮点数与浮点数相比,奇怪的输出

float f = 0.7; if( f == 0.7 ) printf("equal"); else printf("not equal"); 为什么输出not equal ? 为什么会发生?