我怎么能做部分类不使用部分关键字

本文关键字:用部 关键字 怎么能 做部 分类 | 更新日期: 2023-09-27 18:12:14

我在一次采访中被问到这个问题。我怎么能重复这个关键字的功能?(С# . net)

编辑1:是的,我认为这是一个糟糕的问题,但知道这将回答你们是很有趣的 编辑2:谢谢大家的回答,我明白了!

我怎么能做部分类不使用部分关键字

我认为-使用扩展

public class MyClass
{
    public Method1()
    {
    }
}
public static class MyClassExt
{
    public static Method2(this MyClass myClass)
    {
    }
}
MyClass mc = new MyClass();
mc.Method1();
mc.Method2();

编写一个小脚本,在编译之前"连接"不同的文件。

这样的脚本可以是:

#!/bin/bash
grep -P $2 "using .*" > $3
tac $1 | sed '0,/}/{s/}//}' | tac >> $3
grep -v -P ".*class.* {" < $2 >> $3

然后用script File1.cs File2.cs ResultingFile.cs调用它(如果希望支持名称空间,应该使用更高级的技术)。对于大多数IDE,您可以指定应该在编译前执行的脚本。


另一种可能的方法是使用子类化。假设您有一个局部类Foo:

File1

public partial class Foo {
    //methods part 1
}

File2

public partial class Foo {
    //methods part 2
}

:

public abstract class FooBase {
    //methods part 1
}

:

public class RealFoo : FooBase {
    //methods part 2
}

所有字段都应该是公共的,您应该为第2部分的方法定义抽象签名,以便您可以调用它们。