Tag: C#的

静态与非静态方法

假设你有一些方法可以在非静态类中做成静态的。 例如: private double power(double a, double b) { return (Math.Pow(a, b)); } 你看到从方法签名变成静态的好处吗? 在上面的例子中: private static double power(double a, double b) { return (Math.Pow(a, b)); } 即使有一些性能或内存的增益,编译器是不是会在编译时做一个简单的优化? 编辑:我正在寻找的是通过声明方法静态的好处。 我知道这是常见的做法。 我想了解它背后的逻辑。 当然,这个方法只是一个例子来澄清我的意图。

将string文字作为parameter passing给C ++模板类

我想要一个在构造函数中使用两个参数的类。 第一个可以是int,double或float,所以<typename T> ,第二个总是一个string文字“my string”,所以我猜const char * const。 任何人都可以给我一些可编译的代码,声明一个简单的类模板描述和声明该类的对象? 谢谢

.NET应用程序无法启动并收到XamlParseException

我写了一个应用程序,可以安装和工作在我的开发电脑(一个窗口7)。 开发环境:Windows 7,VS2010安装了.NET 4和.NET 3.5的 WPF C# 在其他客户端计算机(XP SP3,2和1)上,安装时没有错误,但无法启动。 在任务pipe理器中,我可以看到应用程序在自己closures之前暂时占用内存。 我已经确定了我的开发PC和各种客户端XP机器的.NET 3.5一致性: 该应用程序的目标是.NET 3.5 (或3.5客户端configuration文件 ) 使用VS2010安装程序进行部署:在启动条件下以.NET 3.5为目标 在debugging应用程序和安装程序项目期间,没有任何有关.NET兼容性的错误 eventvwr发现了以下警告: ¬º˛¿‡–Õ: ¥ÌŒÛ ¬º˛¿¥'¥: .NET Runtime ¬º˛÷÷¿‡: Œfi ¬º˛ ID: 1026 »'∆⁄: 2011-10-18 ¬º˛: 15:18:32 ”√ªß: N/A º∆À„ª˙: WWW-9DB69D5A3AF √Ë ˆ: Application: Foo.exe Framework Version: v4.0.30319 Description: ”…”⁄Œ¥æ≠¥¶¿Ìµƒ“Ï≥££¨Ω¯≥Ã÷'÷π°£ “Ï≥£–≈œ¢: System.Windows.Markup.XamlParseException ∂—'ª: '⁄ System.Windows.Markup.XamlReader.RewrapException(System.Exception, System.Xaml.IXamlLineInfo, System.Uri) '⁄ […]

如何在C#WinForms中刷新ListBox的DataSource

表单有一个combobox和一个ListBox。 当单击“添加”button时,我想将所选项目从combobox添加到列表框。 public partial class MyForm:Form { List<MyData> data = new List<MyData>(); private void ShowData() { listBox1.DataSource = data; listBox1.DisplayMember = "Name"; listBox1.ValueMember = "Id"; } private void buttonAddData_Click(object sender, EventArgs e) { var selection = (MyData)comboBox1.SelectedItem; data.Add(selection); ShowData(); } } 在这个例子中,select的项目被replace为ListBox内的新select。 我需要将该项目添加到列表中。 我的代码有什么问题? 谢谢。

如何从任意pthread_t获取线程ID?

我有一个pthread_t,我想改变它的CPU亲和力。 问题是我使用glibc 2.3.2,它没有pthread_setaffinity_np() 。 没关系,因为pthread_setaffinity_np()本身就是sched_setaffinity()的一个包装,可以通过传递线程ID而不是进程ID来设置任意线程的关联。 但是 … sched_setaffinity可以使用的线程ID是一个操作系统线程ID,可以从gettid()系统调用中获得。 这与opaquetypes的pthread_t不同 ,gettid()只会返回当前线程的thread-id。 我需要能够设置任意线程的CPU亲和力。 不幸的是,我不能访问pthread的私有部分,这会让我通过将pthread_t转换为struct pthread *来窃取线程id。 我猜,更好一些,因为依赖私有实现需要更多的麻烦。 我也一直在阅读pthread_getunique_np函数,但是这会返回一个“唯一的整型标识符” – 我不认为它是以任何forms或forms等同于操作系统线程ID。 因此,问题:我如何从任意pthread_t获得线程ID?

最好的方式来dynamic设置appender文件path

我试图find比我更聪明的人来validation我写的一些语法。 我的想法是将我的RollingFileAppender的文件名configuration为程序集的名称,以使其更适合于我的项目。 我已经看过这篇以前的文章,但它不完全能够回答我的问题… 我有一段时间试图了解Log4net的内部组件,这就是我想到的(驻留在Global.asax文件 – Application_Start方法中): // Bind to the root hierarchy of log4net log4net.Repository.Hierarchy.Hierarchy root = log4net.LogManager.GetRepository() as log4net.Repository.Hierarchy.Hierarchy; if (root != null) { // Bind to the RollingFileAppender log4net.Appender.RollingFileAppender rfa = (log4net.Appender.RollingFileAppender)root.Root.GetAppender("RollingLogFileAppender"); if (rfa != null) { // Set the file name based on the assembly name string filePath = string.Format("~/App_Data/{0}.log", GetType().Assembly.GetName().Name); // […]

if语句中的sizeof()运算符

#include <stdio.h> main() { if (sizeof(int) > -1) printf("True"); else printf("False"); } 它打印False 。 为什么sizeof()在if返回一个值?

试图读取或写入受保护的内存

我已经开始看到一个AccessViolationException在我的应用程序中被抛出几个不同的地方。 它从来没有发生在我的开发电脑,我们的testing服务器上。 它也仅在我们的两台生产服务器中的一台显示。 因为它似乎只发生在我们的一台生产服务器上,所以我开始在服务器上查看已安装的.net框架版本。 我发现(出于某种奇怪的原因),有问题的生产服务器有2.0 sp2,3.0 sp2和3.5 sp1,而另一台生产服务器和testing服务器有2.0 sp1。 我的应用程序只针对2.0框架,决定从生产服务器上卸载所有的框架版本,只安装2.0 sp1。 到目前为止,我还没有能够重现这个问题。 很有意思。 开发PC:compact 2.0 sp2,compact 3.5,2.0 sp2,3.0 sp2,3.5 sp1testing服务器:2.0 sp1生产服务器1:2.0 sp1生产服务器2:2.0 sp2,3.0 sp2,3.5 sp1 现在,为什么我不能重现我的开发电脑上有2.0 SP2的问题,我不明白。 我听说有传言说这种访问违规可能发生在某些使用远程处理的软件上,而远程处理实际发生时访问违规从未发生过。 我现在只用2.0 sp1就可以了,但是我真的很想知道是否有人遇到过这个问题,以及他们是否find了更新版本的frameowork的解决方法。 这里有一些例外和他们的堆栈跟踪: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at ICSharpCode.TextEditor.TextArea.HandleKeyPress(Char ch) at ICSharpCode.TextEditor.TextArea.SimulateKeyPress(Char ch) […]

Bitmap.Save方法中的GDI +中发生了一般性错误

我正在上传并将缩略图副本保存在缩略图文件夹中。 我正在使用以下链接: http://weblogs.asp.net/markmcdonnell/archive/2008/03/09/resize-image-before-uploading-to-server.aspx 但 newBMP.Save(directory + "tn_" + filename); 导致exception“GDI +中发生一般性错误”。 我试图给予文件夹权限,也试图保存时使用新的单独的bmp对象。 编辑: protected void ResizeAndSave(PropBannerImage objPropBannerImage) { // Create a bitmap of the content of the fileUpload control in memory Bitmap originalBMP = new Bitmap(fuImage.FileContent); // Calculate the new image dimensions int origWidth = originalBMP.Width; int origHeight = originalBMP.Height; int sngRatio = origWidth / […]

C在每个空白处分割string

我想用C语言编写一个程序,用单独的一行显示整个句子的每个单词(作为input)。 这是我迄今为止所做的: void manipulate(char *buffer); int get_words(char *buffer); int main(){ char buff[100]; printf("sizeof %d\nstrlen %d\n", sizeof(buff), strlen(buff)); // Debugging reasons bzero(buff, sizeof(buff)); printf("Give me the text:\n"); fgets(buff, sizeof(buff), stdin); manipulate(buff); return 0; } int get_words(char *buffer){ // Function that gets the word count, by counting the spaces. int count; int wordcount = 0; char ch; […]