Tag: C#的

C# – 正确的方式来加载程序集,查找类和调用运行()方法

示例控制台程序。 class Program { static void Main(string[] args) { // … code to build dll … not written yet … Assembly assembly = Assembly.LoadFile(@"C:\dyn.dll"); // don't know what or how to cast here // looking for a better way to do next 3 lines IRunnable r = assembly.CreateInstance("TestRunner"); if (r == null) throw new Exception("broke"); […]

为什么预处理器macros是邪恶的,有什么select?

我一直都这样问,但是我从来没有收到过很好的答案。 我认为在编写第一个“Hello World”之前,几乎所有的程序员都遇到过“macros不该用”,“macros都是恶”等字眼,我的问题是:为什么? 随着新的C + + 11有这么多年后真正的select? 这个简单的部分是关于像#pragma这样的macros,它们是平台特定的和编译器特定的,而且大多数时候像#pragma once这样的严重缺陷#pragma once在至less2个重要的情况下容易出错:在不同的path中有相同的名字,networking设置和文件系统。 但总的来说,macros和它们的用法的替代方法呢?

C逐行读取文件

我写了这个函数从文件中读取一行: const char *readLine(FILE *file) { if (file == NULL) { printf("Error: file pointer is null."); exit(1); } int maximumLineLength = 128; char *lineBuffer = (char *)malloc(sizeof(char) * maximumLineLength); if (lineBuffer == NULL) { printf("Error allocating memory for line buffer."); exit(1); } char ch = getc(file); int count = 0; while ((ch != '\n') && […]

创build一个DPI感知应用程序

我在C#中有一个表单应用程序。 当我改变显示器的DPI时,所有的控制都会移动。 我用这个代码this.AutoScaleMode = AutoScaleMode.Dpi ,但它并没有避免这个问题。 有没有人有一个想法?

正则expression式电子邮件validation

我用这个 @"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$" 正则expression式来validation电子邮件 ([\w\.\-]+) – 这是为一级域(许多字母和数字,也是点和连字符) ([\w\-]+) – 这是第二级域名 ((\.(\w){2,3})+) – 这是为其他水平的领域(从3到无穷),其中包括一个点和2或3文字 这个正则expression式有什么问题? 编辑:它不符合“something@someth.ing”电子邮件

C编程:另一个函数中的malloc()

我需要另一个函数内的 malloc()帮助。 我从我的main()传递一个指针和大小的函数,我想分配内存为该指针dynamic使用malloc()从内部调用函数,但我看到的是…内存,这是得到分配,是在我的被调用的函数中声明的指针,而不是在main()的指针。 我应该如何传递一个函数的指针,并从被调用的函数内部为传入的指针分配内存? 我写了下面的代码,并得到如下所示的输出。 资源: int main() { unsigned char *input_image; unsigned int bmp_image_size = 262144; if(alloc_pixels(input_image, bmp_image_size)==NULL) printf("\nPoint2: Memory allocated: %d bytes",_msize(input_image)); else printf("\nPoint3: Memory not allocated"); return 0; } signed char alloc_pixels(unsigned char *ptr, unsigned int size) { signed char status = NO_ERROR; ptr = NULL; ptr = (unsigned char*)malloc(size); if(ptr== NULL) […]

什么时候使用multithreadingvolatile?

如果有两个线程访问一个全局variables,那么很多教程都会说variables是volatile的,以防止编译器将这个variablescaching在一个寄存器中,从而不能正确更新。 然而,两个线程都访问一个共享variables是通过互斥体来保护的东西,不是吗? 但是在这种情况下,在线程locking和释放互斥体之间,代码是在一个只有一个线程可以访问variables的关键部分,在这种情况下,variables不需要是易失性的? 那么在multithreading程序中volatile的用途和用途是什么呢?

在C#中,variables名之前的@符号是什么意思?

可能重复: C#中variables名中@字符的用法/含义是什么? 我知道@符号可以在string之前使用,以改变编译器parsingstring的方式。 但是当variables名以@符号为前缀时,这意味着什么?

剪贴板事件C#

是否有剪贴板更改或更新的事件,我可以通过C#访问?

在C#4.0中如何实现generics协方差和对数变异?

我没有参加PDC 2008,但是我听到一些消息说C#4.0被宣布支持Generic协方差和反方差。 也就是说, List<string>可以被分配给List<object> 。 那怎么可能? 在Jon Skeet的书“ 深度C#”中 ,解释了为什么C#generics不支持协方差和反方差。 主要是为了编写安全的代码。 现在,C#4.0更改为支持它们。 会不会带来混乱? 有人知道关于C#4.0的细节可以给一些解释吗?