Tag: C#的

DataContract XML序列化和XML属性

是否有可能将此XML反序列化为标有DataContract属性的对象? <root> <distance units="m">1000</distance> </root> 正如你可能看到有“单位”属性。 我不相信这是支持的。 还是我错了?

二维数组与一维数组的性能

在C中,m×n二维数组与长度为m×n的一维数组(m和n的大数值)之间在时间和空间上是否存在差异? 使用1维数组访问元素会更快吗?

内存中C ++对象的结构与结构

如果我有一个类如下 class Example_Class { private: int x; int y; public: Example_Class() { x = 8; y = 9; } ~Example_Class() { } }; 和一个结构如下 struct { int x; int y; } example_struct; example_struct内存结构与Example_Class类似 例如,如果我做了以下 struct example_struct foo_struct; Example_Class foo_class = Example_Class(); memcpy(&foo_struct, &foo_class, sizeof(foo_struct)); 将foo_struct.x = 8和foo_struct.y = 9 (即:与foo_struct.y = 9中的x,y值相同的值)? 我问的原因是我有一个C ++库(不想改变它)与C代码共享一个对象,我想用一个结构来表示来自C ++库的对象。 […]

正在使用#pragma警告推/popup正确的方式来临时改变警告级别?

偶尔很难编写不会发出警告的C ++代码。 但启用警告不失为一个好主意。 所以通常需要禁用某些特定构造的警告,并使其在所有其他代码段中启用。 到目前为止,我已经看到了两种方法。 第一个是使用#pragma warning( push )和#pragma warning( pop ) : #pragma warning( push ) #pragma warning( disable: ThatWarning ) //code with ThatWarning here #pragma warning( pop ) 第二个是使用#pragma warning( default ) : #pragma warning( disable: ThatWarning ) //code with ThatWarning here #pragma warning( default: ThatWarning ) 我在第二个版本中看到的问题是,它放弃了最初的警告级别 – 在此之前警告可能已经closures,或者它的警告级别可能已经被改变。 使用default会放弃这些改变。 第一种方法看起来很干净。 有没有问题呢? […]

<cstdint> vs <stdint.h>

stdint.h和cstdint什么cstdint ? 它们都可以在MSVC(Visual Studio 2010)和gcc-4.5.1中使用。 还要定义intX_t / uintX_ttypes(其中X是types的字节大小)。 如果两个头文件中的基本原理是相同的(便携式),那么我必须做出什么决定来决定哪一个呢? stdint.h定义了没有任何名称空间的每个types, cstdinttypes位于std名称空间中。 是否有任何理由包含或不包括定义的types到std命名空间? 两个标题有什么不同? cstdint没有文件扩展名并使用c前缀, stdint.h使用.h扩展名。 这个头文件的命名约定是什么? c前缀表示这是一个C库? 在cstdint缺less文件扩展的cstdint什么?

如何在Visual C ++ 2008中创build一个UTF-8string文字

在VC ++ 2003中,我可以将源文件保存为UTF-8,并且所有string均按原样使用。 换句话说,下面的代码将原样打印到控制台。 如果源文件保存为UTF-8,那么输出将是UTF-8。 printf("Chinese (Traditional)"); printf("中国語 (繁体)"); printf("중국어 (번체)"); printf("Chinês (Tradicional)"); 我用UTF-8 BOM保存了UTF-8格式的文件。 但是使用VC2008编译的结果是: warning C4566: character represented by universal-character-name '\uC911' cannot be represented in the current code page (932) warning C4566: character represented by universal-character-name '\uAD6D' cannot be represented in the current code page (932) etc. 导致这些警告的字符已损坏。 符合语言环境(在这种情况下,932 =日语)的转换为语言环境编码,即Shift-JIS。 我找不到一个方法让VC ++ 2008为我编译这个。 […]

如何为我的课程提供自定义投射支持?

我如何提供支持将我的课程转换为其他types? 例如,如果我有我自己的pipe理一个byte[] ,我想让人们投我的类到一个byte[] ,这将只返回私人成员,我该怎么做? 是否习惯于让他们也将这个string,或者我应该重写ToString() (或两者)?

为什么WCF像我期望的那样返回myObject 而不是List <T>?

我从我的WCF方法返回一个列表。 在我的客户端代码中,返回types显示为MyObject []。 我必须使用MyObject []或IList或IEnumerable … WCFClient myClient = new WCFClient(); MyObject[] list = myClient.GetMyStuff(); or IList<MyObject> list = myClient.GetMyStuff(); or IEnumerable<MyObject> list = myClient.GetMyStuff(); 我正在做的是把这个集合并绑定到一个网格。 什么是最好的对象分配我返回的集合?

自定义app.config部分有一个简单的“添加”元素列表

我如何创build一个自定义的app.config部分,只是一个简单的add元素列表? 我已经find了几个例子(例如, 如何在app.config中创build自定义configuration部分? )的自定义部分,看起来像这样: <RegisterCompanies> <Companies> <Company name="Tata Motors" code="Tata"/> <Company name="Honda Motors" code="Honda"/> </Companies> </RegisterCompanies> 但是,如何避免额外的收集元素(“公司”),使其看起来像appSettings和connectionStrings部分相同? 换句话说,我想: <registerCompanies> <add name="Tata Motors" code="Tata"/> <add name="Honda Motors" code="Honda"/> </registerCompanies>

C#二进制文字

有没有办法在C#中编写二进制文字,如用0x前缀hex? 0b不起作用。 如果没有,那么做一个简单的方法是什么? 某种string转换?