小编Dus*_*vis的帖子

String.Equals(a,b)如何不产生StackOverflowException?

在检查String ==操作员时,我注意到它调用了String.Equals(string a, string b),这意味着它只是一个传递.

检查String.Equals(string a, string b)方法,我看到它使用==运算符进行相等性检查.这是如何实际工作并没有引起StackOverflowException做这样的事情时,"x" == "x"还是"x" == "y"

更新:我让JetBrains知道,他们把它作为dotPeek的关键优先事项.https://youtrack.jetbrains.com/issue/DOTP-6789

我还在ILSpy的GitHub回购中添加了一个问题.

字符串平等

.net c#

158
推荐指数
2
解决办法
5867
查看次数

String.Replace()与StringBuilder.Replace()

我有一个字符串,我需要用字典中的值替换标记.它必须尽可能高效.使用string.replace执行循环只会消耗内存(字符串是不可变的,请记住).StringBuilder.Replace()会更好,因为它是用于字符串操作的吗?

我希望避免花费RegEx,但如果这样做会更有效率那么就这样吧.

注意:我不关心代码复杂性,只关心它运行的速度和消耗的内存.

平均统计数据:长度为255-1024个字符,字典中为15-30个字符.

.net c# replace .net-4.0

73
推荐指数
4
解决办法
5万
查看次数

反映基类的私有字段

这是结构:

MyClass:SuperClass2

SuperClass2:SuperClass1

superClass2位于Product.Web中,SuperClass1位于.NET System.Web程序集中

我试图强制一个值进入SuperClass1上的私有bool字段.但无论我尝试什么,我都无法让领域从反思回来.

我使用以下代码与不同的BindingFlag组合,但到目前为止没有任何工作.SuperClass1是一个抽象类.

((SuperClass1)this).GetType().GetFields(System.Reflection.BindingFlags.NonPublic);
Run Code Online (Sandbox Code Playgroud)

注意: 当我使用GetProperties()时,我得到了一个很好的大清单,但是当我指定任何绑定标志时,即使有匹配的属性,我什么也得不到.这是怎么回事?

此外,该字段未标记为内部

显然我会使用GetField(字符串名称,BindingFlags),但我甚至无法使GetFlags()工作.

更新:我已经尝试按照建议添加BindingFlags.Instance,但它不起作用(无论如何都是预期的).我找回了来自SuperClass1类继承自的2个字段.与GetField一起使用时返回null(字符串名称,标志)

这是我试图获取该字段的基类的代码

public abstract class BaseValidator : Label, IValidator
  {
    private bool propertiesChecked;
...
}
Run Code Online (Sandbox Code Playgroud)

.net c# reflection

24
推荐指数
3
解决办法
3万
查看次数

ConcurrentBag <T>的实际使用是什么?

ConcurrentBag将允许多个线程添加和删除包中的项目.线程可能会将一个项目添加到包中,然后最终将该项目重新取出.它说ConcurrentBag是无序的,但是它有多无序?在单个线程上,行李就像一个堆栈.无序意味着"不像链接列表"吗?

ConcurrentBag的真实用途是什么?

.net-4.0 task-parallel-library

16
推荐指数
2
解决办法
9282
查看次数

使用python登录谷歌?

我对网络编程相当新,但为了它,我试图登录谷歌帐户不使用标准代码,但作为一个python应用程序,但这是不可能这样做有任何人尝试过这个吗?有人可以帮忙吗?

python login

16
推荐指数
2
解决办法
2万
查看次数

仍可从不同的程序集访问内部受保护的属性

我正在为可访问性的初学者会话设置一些演示代码,我发现我能够从派生类访问内部受保护的属性.我错过了什么?

大会1

namespace Accessibility
{
    class Program
    {
        static void Main(string[] args)
        {
            ExampleClass c = new ExampleClass();
            c.Go();
            //c.Prop1 = 10;
        }
    }

    class ExampleClass : DerivedClass
    {
        public void Go()
        {
            this.Prop1 = 10;
            this.Prop2 = 10;
            //this.Prop3 = 10; //Doesn't work
            //this.Prop4 = 10; //Doesn't work
            this.Prop5 = 10; //why does this work?!

            this.DoSomething();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

大会2

namespace Accessibility.Models
{
    public class BaseClass
    {
        public int Prop1 { get; set; }
        protected int Prop2 { get; …
Run Code Online (Sandbox Code Playgroud)

.net c#

15
推荐指数
2
解决办法
3217
查看次数

通过hWnd获取WPF窗口

我希望得到一个WPF窗口并遍历它的控件.我能够获得hWnd,并且我在使用DependencyObject遍历控件时发现了其他帖子.如何从hWnd获取DependencyObject?它甚至可能吗?

.net wpf winapi

13
推荐指数
1
解决办法
1万
查看次数

Visual Studio:单一解决方案还是许多解决方案?

现在这个遗留代码是多个项目,每个项目都有自己的解决方案.每个项目都通过它编译的dll引用另一个项目.要使主项目运行,您必须以正确的顺序经历10个以上的单独构建.

我试图解释如何在一个解决方案下移动所有项目是解决所有这些问题的好主意.我怎样才能向其他开发者解释这是一个更好的主意?我看不出这是不是一个更好的方式,但是它还是我错了?

visual-studio-2010 visual-studio

11
推荐指数
2
解决办法
1854
查看次数

Visual Studio字体和颜色:html属性引用

出于某种原因,当我使用我的黑暗主题向VS中的HTML标签添加属性时,引号是黑色的,因为我有黑色背景,所以难以使用.我已经完成了我认为最有可能改变颜色的地方.我需要调整哪种颜色列表来更改引号的颜色?

visual-studio-2010

9
推荐指数
1
解决办法
2319
查看次数

检查重复项时最好的自联接技术

我正在尝试优化生产中需要很长时间的查询.目标是根据匹配的字段值条件查找重复记录,然后删除它们.当前查询通过t1.col1 = t2.col1上的内连接使用自连接,然后使用where子句检查值.

select * from table t1 
inner join table t2 on t1.col1 = t2.col1
where t1.col2 = t2.col2 ...
Run Code Online (Sandbox Code Playgroud)

什么是更好的方法来做到这一点?或者根据索引是否完全相同?也许

select * from table t1, table t2
where t1.col1 = t2.col1, t2.col2 = t2.col2 ...
Run Code Online (Sandbox Code Playgroud)

这个表有100米+行.

MS SQL,SQL Server 2008 Enterprise

select distinct t2.id
    from table1 t1 with (nolock)
    inner join table1 t2 with (nolock) on  t1.ckid=t2.ckid
    left join table2 t3 on t1.cid = t3.cid and t1.typeid = t3.typeid
    where 
    t2.id > @Max_id and
    t2.timestamp > t1.timestamp and …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2008

8
推荐指数
1
解决办法
3万
查看次数