Tag: C#的

如何使用C#从文件中获取EXIF数据

我想用C#编写一个小程序,通过我的jpeg照片,例如,它们分类成date文件夹(使用我的约会约会,该死的…)。 有没有人知道一个相对简单的方法获取EXIF数据,如date和时间或曝光编程方式? 谢谢!

如何使用XmlSerializer将string序列化为CDATA?

是否有可能通过某种属性使用.Net XmlSerializer将string序列化为CDATA?

在c#中查找以字节为单位的对象实例的大小

对于任何实例(不同对象,构图,单个对象等的集合) 我怎样才能确定它的大小以字节为单位? (我目前有各种对象的集合,我试图确定它的聚合大小) 编辑:有人写了可以做到这一点的对象的扩展方法? 这将是相当整齐的艾莫。

在String.Split操作中指定空格的最佳方法

我正在分割一个基于空格的string,如下所示: string myStr = "The quick brown fox jumps over the lazy dog"; char[] whitespace = new char[] { ' ', '\t' }; string[] ssizes = myStr.Split(whitespace); 在我想要执行的代码中无处不在的地方定义char []数组是很烦人的。 是否有更高效的方式,不需要创build字符数组(如果在不同的地方复制,容易出错)?

函数指针和函数的地址

所以我觉得在制作函数指针时,不需要operator &来获取初始函数的地址: #include <stdio.h> double foo (double x){ return x*x; } int main () { double (*fun1)(double) = &foo; double (*fun2)(double) = foo; printf("%f\n",fun1(10)); printf("%f\n",fun2(10)); printf("fun1 = %p \t &foo = %p\n",fun1, &foo); printf("fun2 = %p \t foo = %p\n",fun2, foo); int a[10]; printf(" a = %p \n &a = %p \n",a,&a); return 0; } […]

什么是比较两个引用types实例的“最佳实践”?

我最近遇到了这个问题,直到现在我一直在高兴地重写等号运算符( == )和/或Equals方法,以便查看两个引用types实际上是否包含相同的数据 (即两个不同的实例看起来相同)。 自从我进行了更多的自动化testing之后,我一直在使用这个function(比较参考数据和预期数据)。 在查看MSDN中的一些编码标准指南时,我遇到了一篇build议反对的文章 。 现在我明白为什么这篇文章是这样说的(因为它们不是同一个实例 ),但是它不回答这个问题: 什么是比较两种参考types的最佳方法? 我们应该实现IComparable ? (我也曾经提到这只应该保留给价值types)。 有一些我不知道的界面吗? 我们应该推出自己的?! 非常感谢^ _ ^ 更新 看起来我错误地阅读了一些文档(这是一个漫长的一天),压倒一切的Equals可能是要走的路。 如果您正在实现引用types,则应考虑在引用types上覆盖Equals方法(如果types看起来像基本types,如Point,String,BigNumber等)。 大多数引用types不应该重载相等运算符,即使它们覆盖了Equals 。 但是,如果要实现旨在具有值语义的引用types(如复数types),则应该覆盖相等运算符。

algorithm将RGB转换为HSV,HSV转换为RGB,范围0-255

我正在寻找颜色空间转换器,从RGB到HSV,特别是对于两个颜色空间范围0到255。

在类定义中定义静态常量整型成员

我的理解是,C ++允许静态const成员在类中定义,只要它是一个整数types。 那么,为什么下面的代码给我一个链接错误? #include <algorithm> #include <iostream> class test { public: static const int N = 10; }; int main() { std::cout << test::N << "\n"; std::min(9, test::N); } 我得到的错误是: test.cpp:(.text+0x130): undefined reference to `test::N' collect2: ld returned 1 exit status 有趣的是,如果我注释掉std :: min的调用,代码编译和链接就好了(即使test :: N也在前一行中引用)。 任何想法是怎么回事? 我的编译器是Linux上的gcc 4.4。

我如何检查C ++ 11的支持?

有没有办法在编译时检测编译器是否支持C ++ 11的某些特性? 例如,像这样的东西: #ifndef VARIADIC_TEMPLATES_SUPPORTED #error "Your compiler doesn't support variadic templates. :(" #else template <typename… DatatypeList> class Tuple { // … } #endif

实现“计时器”的最佳方式是什么?

可能重复: 如何将计时器添加到C#控制台应用程序 什么是实现计时器的最佳方式? 代码示例会很棒! 对于这个问题,“最好”被定义为最可靠的(最less数量的失火)和精确的。 如果我指定15秒的时间间隔,我希望每15秒调用一次目标方法,而不是每10-20秒。 另一方面,我不需要纳秒精度。 在这个例子中,该方法每14.51-15.49秒就可以接受。