Tag: C#的

是否应该使用前向声明而不是尽可能包含?

每当类声明只使用另一个类作为指针时,使用类前向声明​​而不是包含头文件是否有意义,以便先发制人地避免循环依赖问题? 所以,而不是有: //file Ch #include "Ah" #include "Bh" class C{ A* a; B b; … }; 做这个,而不是: //file Ch #include "Bh" class A; class C{ A* a; B b; … }; //file C.cpp #include "Ch" #include "Ah" … 有没有任何理由为什么不尽可能做到这一点?

如何在类中初始化const成员variables?

#include <iostream> using namespace std; class T1 { const int t = 100; public: T1() { cout << "T1 constructor: " << t << endl; } }; 当我试图用100初始化const成员variablest ,但它给了我以下错误: test.cpp:21: error: ISO C++ forbids initialization of member 't' test.cpp:21: error: making 't' static 我怎样才能初始化一个const值?

如何以编程方式更改文件位置?

我对Log4net完全陌生。 我已经设法通过添加configuration文件和简单的日志logging来进行一些操作。 我已经硬编码的值是"C:\temp\log.txt"但是这不够好。 日志必须转到特殊文件夹 path = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); 并且此path会根据您使用的是Windows Server 2008还是Windows XP或Vista等而有所不同。 我怎样才能以编程方式更改log4net中的文件的位置? 这是我所做的: <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/> </configSections> <log4net> <root> <level value="DEBUG" /> <appender-ref ref="LogFileAppender" /> </root> <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="C:\temp\log.txt" /> <param name="AppendToFile" value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="10MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd […]

如何在app.config中创build自定义configuration部分?

我想在我的app.config文件中添加一个自定义的configuration部分。 有没有办法做到这一点,我怎样才能访问我的程序中的这些设置。 以下是我想添加到我的app.config的configuration部分: <RegisterCompanies> <Companies> <Company name="Tata Motors" code="Tata"/> <Company name="Honda Motors" code="Honda"/> </Companies> </RegisterCompanies>

使用HttpClient进行Https调用

我一直在使用HttpClient使用C#进行WebApi调用。 与WebClient相比,似乎整洁快捷。 不过,当我打开Https调用时, 我怎样才能使下面的代码,使Https调用? HttpClient httpClient = new HttpClient(); httpClient.BaseAddress = new Uri("http://foobar.com/"); httpClient.DefaultRequestHeaders.Accept.Clear(); httpClient.DefaultRequestHeaders.Accept.Add( new MediaTypeWithQualityHeaderValue("application/xml")); var task = httpClient.PostAsXmlAsync<DeviceRequest>( "api/SaveData", request); 编辑1:上面的代码工作正常进行http调用。 但是,当我改变scheme到https它不起作用。 这是得到的错误: 底层连接已closures:无法build立SSL / TLS安全通道的信任关系。 编辑2:改变scheme为https是:第一步。 如何随C#请求一起提供证书和公钥/私钥。

如何将TimeSpan转换为格式化的string?

我有两个date时间variables,beginTime和endTime。 我通过下面的方法得到了他们的区别: TimeSpan dateDifference = endTime.Subtract(beginTime); 我现在怎样才能以hh,hms,ss secs格式使用C#返回一串string。 如果差异是00:06:32.4458750 它应该返回这个00小时,06分钟,32秒

将二维数组映射到一维数组上

我想用一维数组来表示二维数组。 函数将传递两个指示(x,y)和要存储的值。 这两个标记将表示一维数组的单个元素,并相应地进行设置。 我知道一维数组需要有arrayWidth×arrayHeight的大小,但我不知道如何设置每个元素。 例如,我如何区分(2,4,3)和(4,2,3)? 我试着将数组设置为x * y,但是2 * 4和4 * 2会导致数组中的相同点,我需要它们不同。

从WPF应用程序获取应用程序的目录

我find了与AppDomain的Windows窗体的解决scheme,但什么是WPF Application对象的等价物?

函数签名是返回types的一部分吗?

在C ++中,返回types是否被认为是函数签名的一部分? 只要修改了返回types就不允许重载。

matrix乘法:matrix大小差异小,时序差异大

我有一个matrix乘法代码,看起来像这样: for(i = 0; i < dimension; i++) for(j = 0; j < dimension; j++) for(k = 0; k < dimension; k++) C[dimension*i+j] += A[dimension*i+k] * B[dimension*k+j]; 这里,matrix的大小由dimension表示。 现在,如果matrix的大小是2000,运行这段代码需要147秒,而如果matrix的大小是2048,则需要447秒。 所以虽然没有区别 (2048 * 2048 * 2048)/(2000 * 2000 * 2000)= 1.073,时间差为447/147 = 3。有人可以解释为什么会发生这种情况吗? 我预计它会线性扩展,这是不会发生的。 我不是想做出最快的matrix乘法代码,只是想明白为什么会发生。 规格:AMD Opteron双核心节点(2.2GHz),2G RAM,gcc v 4.5.0 程序编译为gcc -O3 simple.c 我已经在Intel的icc编译器上运行了这个,并且看到了类似的结果。 编辑: 正如评论/答案中所build议的那样,我运行了维度= […]