Tag: C#的

C#4中的dynamic关键字是否支持扩展方法?

我正在听一个关于C#4 dynamic关键字的讨论,我想知道…这个特性是否与其他.NET特性是正交的,例如它是否支持扩展方法? public static class StrExtension { public static string twice(this string str) { return str + str; } } … dynamic x = "Yo"; x.twice(); // will this work? 注意:这个问题在C#4出货之前就已经被问到了,这就是为什么它会以将来的forms出现。

我怎样才能打印wchar_t值到控制台?

例: #include <iostream> using namespace std; int main() { wchar_t en[] = L"Hello"; wchar_t ru[] = L"Привет"; //Russian language cout << ru << endl << en; return 0; } 这个代码只打印HEX值,如地址。 如何打印wchar_tstring?

为什么C#中匿名types的属性是只读的?

在C#中,匿名types的属性是只读的: var person = new { Surname = "Smith", OtherNames = "John" }; person.Surname = "Johnson"; // ERROR: .Surname is read-only 当然,如果我想要可写的字段或属性,我可以声明一个真正的类,但是无论如何,这个devise决策背后的原因是什么使属性为只读?

c#:“System.Object”和“object”的区别

在C#中,在代码中使用System.Object而不是仅仅是object ,还是System.String而不是string等有什么区别? 还是只是一个风格问题? 为什么有一种forms比另一种forms更可取?

如何通过字符比较来执行一个Unicode意识的字符?

我的应用程序有一个国际性的目标,许多国家的人都会使用它,他们会用自己的语言input文本(我必须处理的文本)。 例如,如果我不得不使用一个字符来比较两个string的差异,那么这个简单的C#代码就足够了,或者我失去了一些东西? var differences = new List<Tuple<int, char, char>>(); for (int i=0; i < myString1.Length; ++i) { if (myString1[i] != myString2[i]) differences.Add(new Tuple<int, char, char>(i, myString1[i], myString2[i])); } 被赋予有效的代码以不同的语言执行这个任务(我的用户不限于US字符集)?

如何确定一个C ++类的大小?

简介 :编译器在编译过程中如何静态确定C ++类的大小? 详情 : 我试图理解什么规则是确定一个类将使用多less内存,以及内存将如何alignment。 例如下面的代码声明了4个类。 前两个是每个16个字节。 但是,3是48个字节,即使它包含与前2个相同的数据成员。虽然第四个类与第三个类具有相同的数据成员,但顺序不同,但是是32个字节。 #include <xmmintrin.h> #include <stdio.h> class TestClass1 { __m128i vect; }; class TestClass2 { char buf[8]; char buf2[8]; }; class TestClass3 { char buf[8]; __m128i vect; char buf2[8]; }; class TestClass4 { char buf[8]; char buf2[8]; __m128i vect; }; TestClass1 *ptr1; TestClass2 *ptr2; TestClass3 *ptr3; TestClass4 *ptr4; […]

std :: fstream不会创build文件

我试图使用std :: fstream为io文件,并且我想创build该文件,如果它不存在。 std::fstream my_stream my_stream.open("my_file_name",std::fstream::binary | std::fstream::in | std::fstream::out); if(!my_stream) std::cout<<"error"<<strerror(errorno); 我得到这个结果:“没有这样的文件或目录。” 在这种情况下如何创build文件?

获取特定types的所有控件

我有多个pictureboxes,我需要在运行时加载随机图像。 所以我认为有一个所有的图片盒的集合,然后使用一个简单的循环分配图像给他们会很好。 但我该怎么做呢? 或者也许还有其他更好的解决scheme来解决这个问题吗?

为什么C ++ 11的POD“标准布局”定义是这样的?

我正在研究C ++ 11中新的轻松的POD定义(第9.7节) 标准布局类是一个类: 没有types非标准布局类(或这种types的数组)的非静态数据成员或引用, 没有虚函数(10.3),没有虚基类(10.1), 对所有非静态数据成员都具有相同的访问控制 (第11章) 没有非标准的布局基类, 在大多数派生类中最多有一个非静态数据成员 , 最多有一个基类具有非静态数据成员 ,或者没有包含非静态数据成员的基类, 没有与第一个非静态数据成员相同types的基类。 我已经突出了一些让我感到惊讶的东西。 如果我们容忍具有不同访问控制的数据成员,会出现什么问题呢? 如果第一个数据成员也是基类,会出现什么问题呢? 即 struct Foo {}; struct Good : Foo {int x; Foo y;}; struct Bad : Foo {Foo y; int x;}; 我承认这是一个奇怪的build筑,但为什么Bad应该禁止,但Good ? 最后,如果不止一个组织成员有数据成员,会出现什么问题?

class / struct成员是否总是按照声明的顺序在内存中创build?

这是Rob Walker 在这里的答案引发的一个问题。 假设我像这样声明了一个类/结构体: struct { char A; int B; char C; int D; }; 假设这些成员在内存中将按照正确的顺序进行声明是安全的,还是依赖于编译器呢? 我问,因为我一直认为编译器可以做任何想做的事情。 这导致我的下一个问题。 如果上面的例子导致内存alignment的问题,为什么编译器不能把它变成这样的隐式: struct { char A; char C; int B; int D; }; (我主要是问C ++,但我也有兴趣听到C的答案) 相关话题 为什么GCC不优化结构?