小编And*_*nas的帖子

重写方法中的默认参数值

在下面的代码中,对Method2的调用接收Value参数为False,即使基类根本没有声明参数的默认值,派生类声明True为默认值.
可以认为(在这里的类似示例中已经完成:在重写方法上使用C#可选参数)编译器首先使用基类的方法声明(这是正确的,因为可以通过对Method1调用前缀来更改此行为this.),但是在这种情况下,基数根本不会声明默认值.
对此有合理的解释吗?

using System;

class Base
{
    public virtual bool Method1(bool Value) { return true; }
    public virtual bool Method2(bool Value) { return true; }
}

class Derived : Base
{
    public override bool Method1(bool Value = true)
    {
        return Value;
    }

    public override bool Method2(bool Value = true)
    {
        return Method1();
    }
}

class Program
{
    static void Main(string[] args)
    {
        Derived a = new Derived();
        Console.WriteLine("Call to Method1, expected: True, got: …
Run Code Online (Sandbox Code Playgroud)

.net c# virtual overriding optional-parameters

15
推荐指数
1
解决办法
2901
查看次数

自动过期孤立订阅(Azure ServiceBus Messaging SubscriptionClient)

我想到的场景是:Service Bus用于实例到实例的通信,因此Subscription对每个服务实例都是唯一的.最终结果是,如果实例未正常关闭,则其订阅不会被删除.

当服务实例"死"并重新启动时,订阅的先前内容是不相关的并且可以被丢弃.

那么,有没有办法为Service Bus订阅设置"生存时间"或模拟类似的东西,而不必诉诸一些自定义的孤立检测机制?

servicebus azure publish-subscribe orphaned-objects

9
推荐指数
2
解决办法
1523
查看次数

Azure SQL数据仓库DWU与Azure SQL DTU

我正在考虑从Azure SQL迁移到Azure SQL数据仓库.它似乎提供了我们需要的一些功能,但价格是开始小的一个问题.100 DWU数据仓库的价格要比看似可比的100 DTU Azure SQL S2层(每月150美元)高得多(每月521 美元).

为了确保我比较苹果和苹果,有人可以了解DWU与DTU的比较(假设使用单个数据库进行基本配置)吗?

编辑:对于那些倾向于回答Azure SQL DW和Azure SQL无法比较的人,因此将DTU与DWU进行比较是没有意义的:那么如何(谈论迁移)对DW 有意义?

azure azure-sqldw azure-sql-database

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

为索引器集访问器调用生成的 CS1612(无法修改返回值...)

为什么 C# 编译器会为尝试对不可变属性调用索引器集访问器的代码生成错误 CS1612?

using System;
using System.Collections.Generic;
using System.Text;

namespace StructIndexerSetter
{
    struct IndexerImpl {
        private TestClass parent;

        public IndexerImpl(TestClass parent)
        {
            this.parent = parent;
        }

        public int this[int index]
        {
            get {
                return parent.GetValue(index);
            }
            set {
                parent.SetValue(index, value);
            }
        }
    }

    class TestClass
    {
        public IndexerImpl Item
        {
            get
            {
                return new IndexerImpl(this);
            }
        }

        internal int GetValue(int index)
        {
            Console.WriteLine("GetValue({0})", index);
            return index;
        }
        internal void SetValue(int index, int value)
        {
            Console.WriteLine("SetValue({0}, {1})", index, value);
        } …
Run Code Online (Sandbox Code Playgroud)

c#

5
推荐指数
1
解决办法
7114
查看次数