C# 更改重写方法中的默认代码段

C# 更改重写方法中的默认代码段,c#,visual-studio,overriding,code-snippets,C#,Visual Studio,Overriding,Code Snippets,请帮帮我!我是否可以自定义默认情况下在重写的方法体中显示的自动生成的代码段 默认情况下,重写的方法如下所示 public override void Method(int A, object B) { base.Method(A, B); } 我想用我自己的代码片段替换默认代码片段,例如 public override void Method(int A, object B) { if (A > 0) { // some code.. }

请帮帮我!我是否可以自定义默认情况下在重写的方法体中显示的自动生成的代码段

默认情况下,重写的方法如下所示

public override void Method(int A, object B)
{
    base.Method(A, B);
}
我想用我自己的代码片段替换默认代码片段,例如

public override void Method(int A, object B)
{
    if (A > 0)
    {
        // some code..
    }
    else
    {
        // some code..
    }
}
编辑

我有基础课

public class BaseClass
{
   public int Result {get;set;}

   // This method depends on result
   protected virtual void Method() {}
}
有许多类是从基类派生的。它们都必须以相同的方式处理方法()中的结果属性。所以,我想放置一些代码,展示如何使用它。 根据我的想法,当我在IntelSense列表中键入“override”并选择“Method()”时,我得到以下代码:

public class DerivedClass: BaseClass
{
    public override void Method()
    {
        // u have to check result property
        if(result > 0)
        {
            // if result is positive do some logic
        }
    }
}
而不是默认的代码段

public class DerivedClass: BaseClass
{
    public override void Method()
    {
        base.Method();
    }
}
最后

对于这种情况,使用模式是一个好主意

谢谢大家分享你的想法

在visual studio中,您可以修改

在代码段中使用参数的地方获得所需的行为可能会很棘手——我目前正在研究这一点,但没有明显的进展


但是,仅仅插入带有一些模板区域的if/else应该不会太难。

好吧,依靠代码片段让人们正确编写方法不是一个好主意。如果希望该方法始终具有该结构,最好使用:


不,我想插入我自己的自定义代码而不是默认的代码段,有可能吗?自动生成是做什么的?事实上,我需要为一个特定的方法自定义重写的代码段。我希望任何时候当有人重写这个方法时,他都能看到一种“示例代码”。此代码不依赖于输入参数,它类似于“硬代码”。我将试着详细描述它。请看我的帖子。@garek我不希望你运气好,只为一个方法更改覆盖行为(尽管今晚我会做更多的挖掘,看看是否能找到方法),对你来说最好的方法是创建一个新的扩展片段,插入你想要的代码。当覆盖类型为by时,它不会给你智能感知,这将允许快速创建moethod存根。感谢你的建议,Martinho Fernandes!在我的案例中使用模板方法模式是一个非常好的选择!
public abstract class BaseClass
{
    // this method forces that structure upon the subclasses
    public void Foo()
    {
        if(result > 0)
        {
            DoFoo();
        }
    }
    // this is the method that subclasses override
    protected abstract void DoFoo();
}

public class DerivedClass : BaseClass
{
    public override DoFoo()
    {
        // now you write the code here
    }
}