Tag: C#的

如何在浮点运算和十进制中表示0.1

我正在尝试更好地理解浮点运算,并且看到了“每个计算机科学家应该知道什么是浮点运算”的几个链接。 我仍然不明白像0.1或0.5这样的数字是如何存储在浮点数和小数。 有人能解释一下,它是如何摆放的? 我知道浮球是两个部分(即一些东西的数量)。

我怎么能得到与iTextSharp的文本格式

我正在使用iTextSharp从PDF读取文本内容。 我也可以阅读。 但我失去了文字格式,如字体,颜色等有什么办法来获得格式化。 下面是我用来确切的文字的代码段 – PdfReader reader = new PdfReader("F:\\EBooks\\AspectsOfAjax.pdf"); textBox1.Text = ExtractTextFromPDFBytes(reader.GetPageContent(1)); private string ExtractTextFromPDFBytes(byte[] input) { if (input == null || input.Length == 0) return ""; try { string resultString = ""; // Flag showing if we are we currently inside a text object bool inTextObject = false; // Flag showing if the […]

初始化程序列表和操作员的RHS

我不明白为什么初始化程序列表不能用在运营商的RHS上。 考虑: class foo { }; struct bar { template<typename… T> bar(T const&…) { } }; foo& operator<<(foo& f, bar const&) { return f; } int main() { foo baz; baz << {1, -2, "foo", 4, 5}; return 0; } 最新的Clang(海湾合作委员会)也抱怨说: clang.cc:14:9: error: initializer list cannot be used on the right hand side of operator […]

C#variables范围:'x'不能在这个范围内声明,因为它会给'x'

if(true) { string var = "VAR"; } string var = "New VAR!"; 这将导致: 错误1名为“var”的局部variables不能在这个范围内声明,因为它给“var”赋予了不同的含义,已经在'child'范围内使用了'var'来表示别的东西。 没有什么地方真的粉碎,但是这不是明显的错误吗? 一位开发人员和我想知道第一个声明是否应该在不同的范围内,因此第二个声明不能干涉第一个声明。 为什么C#无法区分这两个范围? 第一个IF范围是不是应该与其他方法完全分开? 我不能从外部调用var,所以错误信息是错误的,因为第一个var在第二个范围中没有相关性。

名称“controlname”在当前上下文中不存在

我有一个我正在使用的Web应用程序(ASP.NET 2.0与C#,使用VS2005)。 一切正常,突然间,我得到的错误: Error 1 The name 'Label1' does not exist in the current context 和其他43种types,每次我在页面的代码隐藏中使用了一个控件。 这只发生在1页。 这就好像隐藏代码不能识别控件。 另一个有趣的事情是,intellisense也没有拿起任何控件。 我试图清理解决scheme文件,删除obj文件,从项目中排除文件,然后重新添加它们,closuresVS并重新启动它,甚至重新启动我的电脑,但没有一个工作。

数组放置 – 新需要缓冲区中的未指定的开销?

5.3.4 C ++ 11月2日草案的[expr.new]给出了例子: new(2,f) T[5]导致operator new[](sizeof(T)*5+y,2,f)的调用。 这里,x和y是表示数组分配开销的非负非指定值; 新expression式的结果将会被operator new[]返回的值所抵消。 这个开销可以应用于所有数组的新expression式 ,包括那些引用库函数operator new[](std::size_t, void*)和其他位置分配函数的expression式。 从一个新的调用到另一个调用的开销可能不同。 – 例子 ] 现在拿下面的例子代码: void* buffer = malloc(sizeof(std::string) * 10); std::string* p = ::new (buffer) std::string[10]; 根据上面的引用,第二行new (buffer) std::string[10]将在内部调用operator new[](sizeof(std::string) * 10 + y, buffer) std::string对象)。 问题是,如果y > 0 ,预分配的缓冲区将太小! 那么如何知道在使用array-new时需要预先分配多less内存呢? void* buffer = malloc(sizeof(std::string) * 10 + how_much_additional_space); std::string* […]

关于暂定义

我从一本关于试探性定义的书中读到, 暂时的定义是没有存储类说明符和没有初始化的任何外部数据声明。 如果到达翻译单元的末尾,并且没有定义出现用于标识符的初始化器,则试探性定义变成完全定义 请解释以上声明的含义。 另外,宣言和定义之间的区别? 由于这个,我混了起来。 :(为什么不这个程序给出了一个错误: #include<stdio.h> int a; //Tentative definition int a; //similarly this declaration too. int main() //not getting any error with this code why its so? { printf("hi"); } 另外,这个代码有什么问题: #include<stdio.h> printf("Hi"); int main(void){ return 0; }

如何更改datagridview中的行颜色?

我想改变我的datagridview中的特定行的颜色。 当columncell 7的值小于columncell 10的值时,该行应该变为红色。关于如何完成这个任务的任何build议?

将string分配给字符数组

我有点惊讶以下。 例1: char s[100] = "abcd"; // declare and initialize – WORKS 例2: char s[100]; // declare s = "hello"; // initalize – DOESN'T WORK ('lvalue required' error) 我想知道为什么第二种方法不起作用。 它应该(它适用于其他数据types)似乎是自然的? 有人能解释我背后的逻辑吗?

在数组指针的情况下,“数组名称”是什么意思?

在我的代码中: char *str[] = {"forgs", "do", "not", "die"}; printf("%d %d", sizeof(str), sizeof(str[0])); 我得到的输出为12 2 ,所以我的疑惑是: 为什么有差异? str和str[0]都是char指针,对吗?