Tag: C#的

C#对于List / IEnumerable是否有IsNullOrEmpty?

我知道一般空列表比NULL更喜欢。 但是我将返回NULL,主要有两个原因 我必须明确地检查和处理空值,以避免错误和攻击。 这很容易执行?? 之后的操作来获得返回值。 对于string,我们有IsNullOrEmpty。 有没有什么从C#本身做List或IEnumerable同样的事情?

在C ++中使用std :: allocator而不是new的优点是什么?

我刚读了std::allocator 。 在我看来,使用它而不是使用new和delete会更复杂。 使用allocator我们必须显式地分配堆内存,构造它,销毁它,然后释放内存。 那么为什么创build? 在哪些情况下可以使用,什么时候使用,而不是新的和删除?

为什么Java没有像C ++那样的初始化列表?

在C ++中,可以使用初始化程序列表在构造函数开始运行之前初始化类的字段。 例如: Foo::Foo(string s, double d, int n) : name(s), weight(d), age(n) { // Empty; already handled! } 我很好奇为什么Java没有类似的function。 根据核心Java:第1卷 : C ++使用这个特殊的语法来调用字段构造函数。 在Java中,不需要它,因为对象没有子对象,只有指向其他对象的指针。 这是我的问题: 他们是什么意思,“因为物体没有子物体?” 我不明白一个子对象是什么(我试图查找它); 它们是指一个扩展超类的子类的实例吗? 至于为什么Java没有像C ++这样的初始化器列表,我会假定原因是因为所有的字段在Java中已经被默认初始化了,而且因为Java使用super关键字来调用super(或者C ++术语中的base)-class构造函数。 它是否正确?

'元素'的初始化被'case'标签跳过

我不明白为什么我得到错误: “元素”的初始化由“大小写”标签跳过。 有人可以向我解释吗? void LinkedList::process_example(int choice) { switch(choice) { case 1: cout << endl << endl << "Current S = "; this->printSet(); cout << "Enter an element :"; char* element = "lol"; //cin>>element; cin.clear(); cin.ignore(200, '\n'); this->Addelementfromback(element); //error is here cout << endl << endl << "Current S = "; this->printSet(); break; case 2: this->check_element(); […]

在C#WPF中,为什么我的TabControl的SelectionChanged事件经常发射?

我有一个选项卡式GUI,每个选项卡包含一个框架。 在其中一个框架中有一个DataGrid。 当用户select这个选项卡,我需要我的数据网格sorting,所以我使用TabControl SelectionChanged事件触发sorting。 但是,每次从DataGrid中select一个项目时都会触发此事件,即使这些标签本身保持不变。 我已经尝试了多个不同的事件:GotFocus为TabItem的一个TabItem的RequestBringIntoView 但他们似乎都受到这个问题的困扰。 这是什么原因造成的?

在C#中访问处理的封闭?

我正在调查微软企业库(数据应用程序块) – 样本sln。 他们有一个读取数据的asynchronous示例( IAsync ,虽然新版本(6)也支持async )。 但是Resharper( 或者Visual Studio- Nevermind )告诉我:“访问处理的closures”:(首先我将显示图像,所以它会更清晰,然后我将粘贴代码) 代码: /*1*/ [Description("Execute a command that retrieves data asynchronously")] /*2*/ static void ReadDataAsynchronously() /*3*/ { /*4*/ if (!SupportsAsync(asyncDB)) return; /*5*/ /*6*/ using(var doneWaitingEvent = new ManualResetEvent(false)) /*7*/ using(var readCompleteEvent = new ManualResetEvent(false)) /*8*/ { /*9*/ try /*10*/ { /*11*/ // Create command to […]

Assert.AreEqual和Assert.AreSame之间的差异?

Assert.AreEqual和Assert.AreSame有什么区别?

在C#中声明一个const double ?

我有几个常量,我使用,我的计划是把他们在一个双数的常量数组,但编译器不会让我。 我试过这样的声明: const double[] arr = {1, 2, 3, 4, 5, 6, 73, 8, 9 }; 然后我决定把它声明为static: static readonly double[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9}; 但问题依然存在。 为什么编译器不能让我声明一个常量值数组? 还是会的,我只是不知道如何?

如何滚动到ListBox的底部?

我正在使用Winforms ListBox作为一个小的事件列表,并希望填充它,以便最后一个事件(底部)是可见的。 SelectionMode设置为none。 用户可以滚动列表,但我宁愿它开始滚动到最后。 看着像ScrollIntoView , EnsureVisible这样的缺乏支持,我假设我将需要创build一个从ListBoxinheritance的自定义控件; 不过我不知道该从哪里做。 有些指针?

GetHashCode覆盖包含generics数组的对象

我有一个包含以下两个属性的类: public int Id { get; private set; } public T[] Values { get; private set; } 我已经使IEquatable<T>并覆盖IEquatable<T>像这样: public override bool Equals(object obj) { return Equals(obj as SimpleTableRow<T>); } public bool Equals(SimpleTableRow<T> other) { // Check for null if(ReferenceEquals(other, null)) return false; // Check for same reference if(ReferenceEquals(this, other)) return true; // Check for same […]