小编Vam*_*msi的帖子

IF的表现比IF-ELSE好吗?

这些代码块中哪一个表现更好,哪一个更易读?我猜这个增益可以忽略不计,特别是在第二个区块.我只是好奇.

块#1

string height;
string width;
if (myFlag == 1)
{
    height = "60%";
    width = "60%";
}
else
{
    height = "80%";
    width = "80%";
}
Run Code Online (Sandbox Code Playgroud)

块#2

string height = "80%";
string width = "80%";
if (myFlag == 1)
{
    height = "60%";
    width = "60%";
}
Run Code Online (Sandbox Code Playgroud)

更新

我测试上述代码时的结果是两个块执行相同的操作

块#1

myFlag = 1:   3 Milliseconds
myFlag = 0:   3 Milliseconds
Run Code Online (Sandbox Code Playgroud)

块#2

myFlag = 1:   3 Milliseconds
myFlag = 0:   3 Milliseconds
Run Code Online (Sandbox Code Playgroud)

但是我在这里注意到的一件重要的事情(感谢Matthew Steeples在这里回答)是因为我测试的代码块没有使用变量高度和宽度,除了if-else中的赋值和if代码块1的块和编译器分别通过完全删除问题中的if和if-else块来优化IL代码,从而在此处显示我们测试的无效结果. …

c# performance if-statement

65
推荐指数
5
解决办法
3150
查看次数

为什么锁定我们要改变的对象是一种不好的做法?

为什么在下面的代码中使用lock是一种不好的做法,我假设这是一个不好的做法,基于这个SO问题的答案

private void DoSomethingUseLess()
{
    List<IProduct> otherProductList = new List<IProduct>();
    Parallel.ForEach(myOriginalProductList, product =>
        {
           //Some code here removed for brevity
           //Some more code here :)
            lock (otherProductList)
            {
                otherProductList.Add((IProduct)product.Clone());
            }
        });
}
Run Code Online (Sandbox Code Playgroud)

那边的答案提到这是不好的做法,但他们没有说明原因

注意:请忽略代码的用处,这只是为了示例目的,我知道它根本没用

c# multithreading locking

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

非静态类中的静态方法与静态类中的静态方法有什么区别?

我有两个班级A和ClassB:

static class ClassA
{
    static string SomeMethod()
    {
        return "I am a Static Method";
    }
}

class ClassB
{
    static string SomeMethod()
    {
        return "I am a Static Method";
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道ClassA.SomeMethod();和之间有什么区别ClassB.SomeMethod();

如果可以在不创建类实例的情况下访问它们,为什么我们需要创建静态类而不是仅使用非静态类并将方法声明为静态?

c# oop static static-methods non-static

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

我应该如何在c#中解决我的方法访问安全性?

我正在处理销售点项目,该项目由一家特殊的银行提供给我们公司.银行提供了一个DLL,它通过USB端口与POS交互.我添加了用.NET C#语言编写的DLL,所以没有存在互操作性问题.在DLL内部有一个方法叫做DebitAndShareTheAmount.这个方法有两个主要参数P1,P2.

P1是明文的金额,P2是应该从P1明文中再次减去的金额.所以,如果我打电话DebitAndShare(1000,10);//它实际上是银行信用我的帐户1000-10 = 990 $和商店使用我的应用程序10 $.

问题是,任何具有一些C#编程基础知识和访问该SHOP计算机的人都可以安装Visual Studio并使用该DLL并调用DebitAndShare方法并且您知道其余的.实际上我们的应用程序将充当服务提供者并且可用于在全国各地的特殊商店,商店的所有者将通过我们的应用程序向客户提供服务并支付他们的金额(10美元)来支付.我将与POS开发人员就我刚刚提到的安全问题进行会谈.

我已经阅读了MCTS书和本书的安全部分,我发现如果银行DLL PublisherIdentityPermission(SecurityAction.InheritanceDemand, CertFile=@"SomeCert.cer")在DebitAndShare方法之前使用属性并将此方法标记为受保护,那么我们可以有一个级别的安全性,是吗?你有什么建议.我也认为如果银行可以给我们加密算法方法,那么它也就足够了.

c# security methods

18
推荐指数
1
解决办法
782
查看次数

如何获取div onblur事件来执行javascript函数?

嗨我有一个包含三个文本框的div,我需要一个函数在控件超出div标签时被调用,我不想使用onclick事件,因为焦点可以通过按下来移出div键盘上的Tab键或其他方式.我还想知道是否有一种方法可以使用任何javascript库来实现这一点.

谢谢,这是示例html代码

<html>
<head>
    <title>Div Onblur test</title>

    <script type="text/javascript">
        function Callme() {
            alert("I am Called")
        }
    </script>

</head>
<body>
    <div onblur="javascript:Callme();">
        <input type=text value ="Inside DIV 1" />
        <input type=text value ="Inside DIV 2" />
        <input type=text value ="Inside DIV 3" />
    </div>
     <input type=text value ="Outside DIV" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery onblur

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

什么时候在静态类中声明的对象会被垃圾收集?

 public static class stClass
{
    static Class1 obj = new Class1();

    public static int returnSomething()
    {
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

当将在Class1实例objstClass获取垃圾回收,如果我调用静态函数stClass.returnSomething()在其他一些非静态类?

注:Class1不是静态的

c# static garbage-collection dispose

11
推荐指数
1
解决办法
4272
查看次数

创建表达式树以访问Generic类型的属性

我需要编写一个泛型方法,它以字符串格式获取泛型类型的实例和属性名称,并返回一个表达式树

我需要转换一个简单的lambda表达式

a => a.SomePropertyName
Run Code Online (Sandbox Code Playgroud)

其中a是泛型类型,它将具有名称的属性SomePropertyName

我知道我们可以使用以下反射代码获取属性信息

System.Reflection.PropertyInfo propInfo = a.GetType().GetProperty("SomePropertyName");
Run Code Online (Sandbox Code Playgroud)

这可能很简单,但我不熟悉表达式树,如果有类似问题,请链接并关闭此

c# linq generics expression-trees

11
推荐指数
1
解决办法
5518
查看次数

如何从服务器上的经典asp页面执行bat文件

我有一个简单的bat文件,在执行时运行一个访问宏,我需要知道如何从asp页面执行这个bat文件,我已经给了包含脚本文件和asp文件的特定文件夹的iusr_machinename的所有权限.

谢谢

注意:我不想在客户端系统上运行任何东西,我只想在asp应用程序运行的同一系统上运行bat文件

iis batch-file asp-classic

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

INSERT AFTER或UPDATE AFTER触发器内的回滚是否回滚整个事务

INSERT AFTER或UPDATE AFTER触发器内的回滚是回滚整个事务还是仅作为触发原因的当前行,是否与Commit相同?

我试图通过我当前使用MSTDC进行交易的项目代码来检查它,看起来好像完整的交易中止了.

如果触发器中的回滚确实回滚整个事务,是否有一种解决方法可以将其限制为仅当前行.

我在这上面找到了sybase的链接,但在sql server上没有

t-sql sql-server triggers sql-server-2008

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

如何从目录中获取子文件夹中的文件

嗨,我必须从目录中的指定路径获取文件.这是我写的方法,但我没有从子文件夹中获取文件.

Private void getfiles(){
Directoryinfo info = new Directoryinfo(configurationmanager.appsettings["Targetroot"].tostring ());
if (info.exists){
     Gvfiles.datasource = info.GetFiles();
     Gvfiles.databind();
   }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net directory

6
推荐指数
2
解决办法
8655
查看次数