小编m.e*_*son的帖子

与代表有什么交易?

我理解委托封装了方法调用.但是我很难理解他们的需求.为什么要使用代表,他们设计的是什么情况?

c# vb.net asp.net

7
推荐指数
3
解决办法
735
查看次数

属性 - 按值或参考?

我有以下公共财产,暴露了Arraylist:

public ArrayList SpillageRiskDescriptions
        {
            get
            {
                return _SpillageRiskDescriptions;
            }
            set
            {
                _SpillageRiskDescriptions = value;
            }
        }
Run Code Online (Sandbox Code Playgroud)

在其他地方,我正在打电话

SpillageRiskDescriptions.Add("VENTILATE AREA");
SpillageRiskDescriptions.Add("DO NOT ALLOW SPILLAGE TO ENTER MAINS");
Run Code Online (Sandbox Code Playgroud)

这些似乎是向私有ArrayList添加元素_SpillageRiskDescriptions(通过属性),而我希望这会导致问题.因此,我认为属性返回对原始变量的引用而不是按传递它是否正确?这是因为ArrayList是参考类型吗?int(例如?)会发生同样的情况吗?

.net c# properties pass-by-reference pass-by-value

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

是否所有不从System.ValueType引用的对象都引用了类型?

我是否正确地认为任何不从System.ValueType继承的对象因此必须是引用类型?

我一直无法找到任何确凿的文档来备份这个概念.

.net c# vb.net value-type reference-type

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

丑陋的LINQ声明,更好的方法?

我有一个LINQ语句,它将多个列的值相加,每个列都以'HH'开头,尽管还有其他列可用:

//TODO Clean up this mess
var query1 = (from e in Data
                where e.SD == date
                select e).Select(x =>   x.HH01 + x.HH16 + x.HH17 + x.HH18 + x.HH19 + x.HH20 + x.HH21 + x.HH22 + x.HH23 +
                                        x.HH24 + x.HH25 + x.HH26 + x.HH27 + x.HH28 + x.HH29 + x.HH30 + x.HH31 + x.HH32 + 
                                        x.HH33 + x.HH34 + x.HH35 + x.HH36 + x.HH37 + x.HH38 + x.HH39 + x.HH40 + x.HH41 +
                                        x.HH42 + x.HH43 + x.HH44 +x.HH45 …
Run Code Online (Sandbox Code Playgroud)

.net c# linq linq-to-entities

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

在html/javascript中将百分比转换为小数

使用Javascript:

   var validate(s) = s.match ^( 100(?:\.0{1,2})? | 0*?\.\d{1,2} | \d{1,2}(?:\.\d     {1,2})? )% $ != null; 

   var str = value.match(/\/\/%//g);

    if(converted==NaN){
            alert('Input was not a number');
    }
    else if(converted != null) {

            var fracToDecimal = eval (value);

            alert(fracToDecimal);
    }
    else if(converted = str) {

            var percToDecimal = value/100;

            alert(percToDecimal);
    } }
Run Code Online (Sandbox Code Playgroud)

javascript

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

将C#Razor转换为VB

我正在关注ASP.NET MVC教程,并且已经在VB.NET中启动了,我在转换以下剃刀代码时遇到了问题:

在此输入图像描述

我有

<ul>
    @For Each g As MvcApplication1.Genre In Model
        <li> @g.Name </li>
    Next

</ul>
Run Code Online (Sandbox Code Playgroud)

但得到

属性Sepcifier不是一个完整的陈述

在两个<li>标签上.我知道我需要使用行继续但无法弄清楚在哪里.如果你能指出问题,我会很高兴.

vb.net asp.net asp.net-mvc razor

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

Assert.AreEqual在单元测试中失败

我有以下单元测试:

string MtrlCode = "0";
Assessment target = new Assessment(MtrlCode);

List<string> EdgeCaseSymbolCodes = new List<string>(); //More than 3
EdgeCaseSymbolCodes.Add("FLA");
EdgeCaseSymbolCodes.Add("HAR");
EdgeCaseSymbolCodes.Add("COR");
EdgeCaseSymbolCodes.Add("ENVON");
EdgeCaseSymbolCodes.Add("ENVR");
EdgeCaseSymbolCodes.Add("EXP");

target.HazardSymbols = EdgeCaseSymbolCodes;

List<string> EdgeCaseSymbolCodesExpected = new List<string>(); //Should be 3
EdgeCaseSymbolCodesExpected.Add("FLA");
EdgeCaseSymbolCodesExpected.Add("HAR");
EdgeCaseSymbolCodesExpected.Add("COR");

System.Windows.Forms.MessageBox.Show(EdgeCaseSymbolCodesExpected[0] + EdgeCaseSymbolCodesExpected[1] + EdgeCaseSymbolCodesExpected[2] + " = \n" + target.HazardSymbols[0] + target.HazardSymbols[1] + target.HazardSymbols[2]);

Assert.AreEqual<List<string>>(EdgeCaseSymbolCodesExpected, target.HazardSymbols, "COSHH_2008.Custom_Classes.Assessment.setHazardSymbols Edge Case did not return the expected value.");
Run Code Online (Sandbox Code Playgroud)

这是测试边缘情况(List<string>具有超过3个元素的时间),所需输出是仅返回前3个.

目前测试失败了,我不得不求助于使用它MessageBox来查看测试内部(由于断点没有被击中!).

从我可以看到的元素是相同的,但我意识到List<string>对象可能有其他不同,但我不能看到这一点,因为断点从未被击中.

我在Visual Studio 2005中找不到模块窗口.

你接下来的步骤是什么?

.net c# asp.net debugging unit-testing

6
推荐指数
3
解决办法
8416
查看次数

ldstr在内部实现newobj吗?

众所周知,字符串是隐式实例化的,这意味着我们不必使用new它来获取对象的对象的引用.

因此,我一直认为框架正在处理这个问题,因此如果我这样做,我会得到相同的IL:

String first = new String(new char[] {'a'});
string second = "a";
Run Code Online (Sandbox Code Playgroud)

然而,似乎第一行是使用newobj instance void [mscorlib]System.String::.ctor(char[]) 和第二行完成的ldstr "a".

那么为了获得一个字符串引用,ldstr内部调用newobj,我在哪里可以看到规范/细节来支持它?

.net c# il jit cil

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

虚拟成员是通过反射调用的(在正常情况下)?

我正在测试在构造函数中调用虚拟成员的效果,并发现在调用该成员时,生成的异常被包装在一个TargetInvocationException.

根据文档,这是:

由反射调用的方法抛出的异常

但是我没有意识到通过反射的任何调用.那么这是否意味着虚拟成员总是通过反射来调用?如果没有,为什么在这种情况下呢?

代码:

class ClassA
    {
        public ClassA()
        {
            SplitTheWords();
        }

        public virtual void SplitTheWords()
        {
            //I've been overidden
        }
    }

class ClassB : ClassA
    {
        private readonly String _output;

        public ClassB()
        {
            _output = "Constructor has occured";
        }

        public override void SplitTheWords()
        {
            String[] something = _output.Split(new[]{' '}); //TargetInvocationException!
        }
    }
Run Code Online (Sandbox Code Playgroud)

.net c# virtual exception access-modifiers

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

流畅的断言“已达到最大递归深度......”

我有许多嵌套的复杂对象,我尝试使用以下代码将它们与流畅断言进行比较:

\n
restResponse.Should().BeEquivalentTo(mappedSoapResponse, options =>\n            {\n                options.AllowingInfiniteRecursion();\n                options.IgnoringCyclicReferences();\n                return options;\n            });\n
Run Code Online (Sandbox Code Playgroud)\n

尽管如此,尽管特别启用了无限递归,但我仍然遇到“达到最大递归深度\xe2\x80\xa6”的问题。

\n

c# fluent fluent-assertions

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