我在C#中有一个同时具有静态和非静态接口的类.是否可以在具有相同名称和签名的类中使用静态和非静态方法?
当我尝试这样做时,我遇到编译器错误,但出于某种原因,我认为有一种方法可以做到这一点.我错了还是没有办法在同一个类中同时使用静态和非静态方法?
如果这是不可能的,有没有一种很好的方法来实现这样的东西,可以适用于任何情况?
编辑
从我收到的回复来看,很明显没有办法做到这一点.我将使用不同的命名系统来解决这个问题.
我想打印两个不同的东西,这取决于一个函数是静态调用Foo::print()还是来自一个实例Foo foo; foo.print();
编辑:这是一个绝对不起作用的类定义,已经有几个人回答了.
class Foo {
string bla;
Foo() { bla = "nonstatic"; }
void print() { cout << bla << endl; }
static void print() { cout << "static" << endl; }
};
Run Code Online (Sandbox Code Playgroud)
但是,有没有一种很好的方法来实现这种效果?基本上,我想做:
if(this is a static call)
do one thing
else
do another thing
Run Code Online (Sandbox Code Playgroud)
换句话说,我知道PHP可以检查是否*this定义了变量,以确定是否静态调用该函数.C++是否具有相同的功能?