Tag: C#的

这个类有多less构造函数?

我正在为即将到来的C ++考试做准备,并且遇到了关于类和构造函数的这个问题: class级有多less构造函数?“ class Fraction { //… public: Fraction(int numerator = 0, int denominator = 1); //… }; 我认为这只是一个,但他们build议有三个: Fraction(); Fraction(n); Fraction(n, d); 换句话说: 是一个函数的默认值重载函数?

获取标记某个属性的所有属性

那里有class级和财产。 一些属性可以被标记属性(这是我的LocalizedDisplayName从DisplayNameAttributeinheritance)。 这是获取类的所有属性的方法: private void FillAttribute() { Type type = typeof (NormDoc); PropertyInfo[] propertyInfos = type.GetProperties(); foreach (var propertyInfo in propertyInfos) { … } } 我想添加标记LocalizedDisplayName和列表框中的属性显示值的列表框中的类的属性。 我怎样才能做到这一点? 编辑 这是LocalizedDisplayNameAttribute: public class LocalizedDisplayNameAttribute : DisplayNameAttribute { public LocalizedDisplayNameAttribute(string resourceId) : base(GetMessageFromResource(resourceId)) { } private static string GetMessageFromResource(string resourceId) { var test =Thread.CurrentThread.CurrentCulture; ResourceManager manager = new […]

是否有可能“等待回报DoSomethingAsync()”

常规的迭代器块(即“yield return”)与“asynchronous”和“等待”不兼容? 这给了我想要做的一个好主意: async Task<IEnumerable<Foo>> Method(String [] Strs) { // I want to compose the single result to the final result, so I use the SelectMany var finalResult = UrlStrings.SelectMany(link => //i have an Urlstring Collection await UrlString.DownLoadHtmlAsync() //download single result; DownLoadHtmlAsync method will Download the url's html code ); return finalResult; } 但是,我得到一个编译器错误,引用“无法从资源加载消息string”。 这是另一个尝试: […]

std :: function如何工作

你知道,我们可以将一个lambda函数包装或存储到一个std::function : #include <iostream> #include <functional> int main() { std::function<float (float, float)> add = [](float a, float b) // ^^^^^^^^^^^^^^^^^^^^ { return a + b; }; std::cout << add(1, 2) << std::endl; } 我的问题是围绕std::function ,你可以看到它是一个模板类,但它可以接受任何types的函数签名 。 例如float (float, float)这种forms的return_value (first_arg, second_arg) 。 什么是std::function的结构,它是如何接受像x(y,z)这样的函数签名以及它如何工作的呢? float (float, float)在C ++中是一个新的有效expression式吗?

C / C ++的基本types是primefaces吗?

C / C ++的基本types,如int , double等,primefaces,如线程安全吗? 他们是否从数据竞赛中解脱出来? 也就是说,如果一个线程写入一个这样的types的对象,而另一个线程从中读取,则行为是否定义良好? 如果没有,是否依赖于编译器或其他东西?

为什么 – ( – 2147483648)= – 2147483648在32位机器中?

我认为这个问题是自我解释的,我想这可能与溢出有关,但我还是不太明白。 发生了什么,在隐藏之下呢? 为什么-(-2147483648) = -2147483648 (至less在编译C时)?

File和FileInfo在C#中有什么区别?

我一直在阅读, 文件类的静态方法是更好地用来执行一个文件,如检查,看看它是否存在,如果我们要执行多个文件信息类的实例对特定文件的操作。 我明白这一点,可以简单地用这种方式盲目,但我想知道为什么有差异? 他们的工作方式是什么,使他们适合不同的情况? 让这两个不同的课程在不同的方面看起来有什么相同之处? 如果有人能够回答这个问题中的至less一个,那将是有帮助的。

如何加快g ++编译时间(使用大量模板时)

这个问题可能有点奇怪,但是我怎样才能加快编译时间? 我的C ++代码大量使用boost和模板。 我已经尽可能多地从头文件中移出并使用了-j选项,但编译(和链接)仍然需要相当长的一段时间。 有没有分析我的代码的工具,并指出了编译器的瓶颈? 或者可以以某种方式configuration运行在我的代码上的编译器? 这将是非常好的,因为有时我有印象,我花了太多的时间凝视编译器控制台日志…

有没有可能创build构造函数扩展方法? 怎么样?

有没有可能添加一个构造函数的扩展方法? 我想添加一个List <T>构造函数来从给定的部分填充的缓冲区中接收特定数量的字节(不需要仅复制相关字节等的开销): … public static List<T>(this List<T> l, T[] a, int n) { for (int i = 0; i < n; i++) l.Add(a[i]); } … 所以用法是: List<byte> some_list = new List<byte>(my_byte_array,number_of_bytes); 我已经添加了一个AddRange扩展方法: public static void AddRange<T>(this List<T> l, T[] a, int n) { for (int i = 0; i < n; i++) l.Add(a[i]); } […]

为什么初始化程序列表中的元素数量会导致模糊的调用错误?

为什么前两个调用做编译器的某些doSomething ,但在列表中使用两个元素会导致模糊的调用? #include <vector> #include <string> void doSomething(const std::vector<std::string>& data) {} void doSomething(const std::vector<int>& data) {} int main(int argc, char *argv[]) { doSomething({"hello"}); // OK doSomething({"hello", "stack", "overflow"}); // OK doSomething({"hello", "stack"}); // C2668 'doSomething': ambiguous call return 0; }