Tag: C#的

如何检测类中是否有特定的成员variables?

为了创buildalgorithm模板函数,我需要知道类或模板参数中的x或X(以及y或Y)。 当使用我的函数为MFC CPoint类或GDI + PointF类或其他一些时可能会有用。 他们都使用不同的x。 我的解决scheme可以简化为以下代码: template<int> struct TT {typedef int type;}; template<class P> bool Check_x(P p, typename TT<sizeof(&P::x)>::type b = 0) { return true; } template<class P> bool Check_x(P p, typename TT<sizeof(&P::X)>::type b = 0) { return false; } struct P1 {int x; }; struct P2 {float X; }; // it also could […]

用WPF实现日志查看器

我寻求build议,以实现与WPF的控制台日志查看器的最佳方法。 它应该符合以下标准: 快速滚动100.000+行 一些条目(如堆栈跟踪)应该是可折叠的 长项目包装 该列表可以按不同的标准过滤(search,标签等) 最后在添加新项目时应该保持滚动 线元素可以包含某种添加格式,如超链接和计数器 总的来说,我有一些想法,比如FireBug和Chrome的控制台窗口。 我玩了这个,但我没有取得太多的进展,因为… – 数据网格无法处理不同的项目高度 – 滚动位置只是释放滚动条后更新(这是完全不可接受的)。 我很确定,我需要某种forms的虚拟化,并愿意遵循MVVM模式。 任何帮助或指针是受欢迎的。

ObservableCollection和BindingList之间的区别

我想知道ObservableCollection和BindingList之间的区别,因为我已经使用它来通知源中的任何添加/删除更改,但实际上我不知道什么时候更喜欢一个。 为什么我会select其中一个? ObservableCollection<Employee> lstEmp = new ObservableCollection<Employee>(); 要么 BindingList<Employee> lstEmp = new BindingList<Employee>();

跟踪#include依赖的工具

有什么好的build议? input将是一个头文件的名称和输出应该是一个列表(最好是一个树)的所有文件,包括它直接或间接。

为什么使用params关键字?

我知道这是一个基本的问题,但我找不到答案。 为什么使用它? 如果你写了一个函数或者一个使用它的方法,当你删除它的时候,代码仍然可以正常工作,100%,因为没有它。 例如: 用参数: static public int addTwoEach(params int[] args) { int sum = 0; foreach (var item in args) sum += item + 2; return sum; } 没有参数: static public int addTwoEach(int[] args) { int sum = 0; foreach (var item in args) sum += item + 2; return sum; }

如何将文件拖放到应用程序中?

我已经在Borland的Turbo C ++环境中看到了这一点,但是我不确定如何去处理我正在使用的C#应用​​程序。 是否有最佳做法或陷阱寻找?

完成与处置

为什么有些人通过Dispose方法使用Finalize方法? 在什么情况下你会使用Dispose方法的Finalize方法,反之亦然?

用块保留“自我”的循环

恐怕这个问题是非常基本的,但我认为这与很多进入块的Objective-C程序员有关。 我所听到的是,因为块捕获的局部variables被作为const拷贝引用,所以如果块被复制,在块中使用self可能会导致保留周期。 所以,我们应该使用__block来强制块直接处理self而不是复制它。 __block typeof(self) bself = self; [someObject messageWithBlock:^{ [bself doSomething]; }]; 而不是仅仅 [someObject messageWithBlock:^{ [self doSomething]; }]; 我想知道的是:如果这是真的,有没有一种方法可以避免丑(除了使用GC)?

如何正确传递参数?

我是一个C ++初学者,但不是编程初学者。 我正在尝试学习C ++(c ++ 11),对于我来说最重要的事情还不清楚:传递参数。 我考虑了这些简单的例子: 具有所有成员基本types的类: CreditCard(std::string number, int expMonth, int expYear,int pin):number(number), expMonth(expMonth), expYear(expYear), pin(pin) 具有成员基本types的类+ 1复杂types: Account(std::string number, float amount, CreditCard creditCard) : number(number), amount(amount), creditCard(creditCard) Client(std::string firstName, std::string lastName, std::vector<Account> accounts):firstName(firstName), lastName(lastName), accounts(accounts) 当我创build一个帐户,我这样做: CreditCard cc("12345",2,2015,1001); Account acc("asdasd",345, cc); 很明显,在这种情况下信用卡将被复制两次。 如果我重写那个构造函数 Account(std::string number, float amount, CreditCard& creditCard) : number(number) , […]

任何人都可以解释IEnumerable和IEnumerator给我?

任何人都可以解释IEnumerable和IEnumerator给我? 比如什么时候用foreach呢? IEnumerable和IEnumerator有什么区别? 为什么我们需要使用它?