标签: static-methods

其中包含私有方法的静态方法[C#]

我想作一个 绘制这将有静态方法 ConsoleSquare() ,我想使这个类隐藏(所有其他方法私人).但我在的地方标注了错误,我不知道如何解决,仍然实现相同的想法(ConsoleSquare() - 静态;隐藏所有其他方法)

class Draw {
private string Spaces(int k){
    string str="";
    for(;k!=0;k--)
        str+='\b';
    return str;
    }
private string Line(int n,char c){
    string str="";
    for(;n!=0;n--)
        str+=c;
    return str;
    }
public static void ConsoleSquare(int n,char c){
    string line  = Line(n,c); // ovdje
    string space = c + Spaces(n - 2) + c; //ovdje
    Console.WriteLine(line);
    for (; n != 0; n--)
        Console.WriteLine(space);
    Console.WriteLine(line);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# static-methods

0
推荐指数
1
解决办法
1130
查看次数

如何从静态方法返回值创建C#类实例?

我尝试使用XDocument(XML Linq)来保存和加载类.为此,我有两种方法:

static MyClass FromXml(XElement data); //calls 0-parameter constructor inside
public XElement ToXml();
Run Code Online (Sandbox Code Playgroud)

像这样的构造函数

public MyClass(XElement data)
{
    this = MyClass.FromXml(data);
}
Run Code Online (Sandbox Code Playgroud)

不起作用(说这是只读的).这可以以某种方式完成(没有创建从返回值手动复制每个字段)?
或者这个想法是错的?
将代码从FromXml构造函数移动应该可以工作,但是然后保存和加载将在两个地方或构造函数不会在一个地方...

c# constructor static-methods

0
推荐指数
2
解决办法
4276
查看次数

无法从另一个类中调用静态方法

我有一个Users类和一个Log类.在Users类中,我有几种方法.如果在方法中发现错误,我会调用Log类中的静态方法将错误写入文本文件和数据库.但是,尝试实际调用静态方法不起作用,我没有收到错误消息.

我使用'require_once'Log.php'在Users类中包含Log类,并使用Log :: log_error()调用该方法.

那么这里发生了什么?

php static-methods

0
推荐指数
1
解决办法
5166
查看次数

不能静态引用非静态方法?

所以,简而言之.我有两节课.

package rpg;

public class Engine {
    public void main(String args[]) {
        Start.gameStart();
        System.out.println(menuResult);
    }
}
Run Code Online (Sandbox Code Playgroud)

package rpg;
public class Start {
    int menuResult = 3;
    public int gameStart() 
    {
        return menuResult;
    }
    public int getMenuResult()
    {
        return Start.menuResult;
    }
}
Run Code Online (Sandbox Code Playgroud)

它不断抛出错误'无法对非静态方法gameStart()进行静态引用.我确定我错过了一些简单但却找不到的东西.谢谢!

java static-methods instance-methods

0
推荐指数
1
解决办法
9921
查看次数

从另一个类调用非静态void

我试图结束一个永无止境的圈子.我需要从另一个类调用一个非静态的void.我没有让它静止的原因是有些东西很难制作静态.(静态空间内的所有内容都必须是静态的).

我被困在一个圆圈里,我需要从另一个类中调用非静态void.我不能让它静态,因为它有些代码不喜欢传递.

直到现在我通过处理程序解决了它:

public static void change(){
//This is called to change a boolean
start=true;}

private void startDone(){
int timeBetweenChecks = 50;
final Handler h = new Handler();
h.postDelayed(new Runnable(){
    public void run(){
        if (start==false){
           startDone();

        } else{  
            //Do something          
        }          
        }
    }
}, timeBetweenChecks);
Run Code Online (Sandbox Code Playgroud)

};

这个问题是我必须运行一个处理程序,检查是否经常发生变化(在我的情况下).

有没有办法直接调用非静态startDone()?

java android static-methods boolean

0
推荐指数
1
解决办法
1516
查看次数

需要C++静态方法

我有一个方法run()成员MyClass.编译时,我明白了

    Error   3   error C2662: 'MyClass::run' : 
    cannot convert 'this' pointer from 'const MyClass' to 'MyClass&'
Run Code Online (Sandbox Code Playgroud)

ITOH,如果我把这个方法设为静态,我没有错误.方法调用发生在这里:

Errors MyClass::execute( const AbstractExecutionContext &ctx ) const
{
    Errors errs;

    Watch wat; wat.restart();
    {

        run() ;

    }

    return errs;
}
Run Code Online (Sandbox Code Playgroud)

和这种方法的声明是

Errors execute(const AbstractExecutionContext &ctx) const;
Run Code Online (Sandbox Code Playgroud)

我希望我可以使这个方法不是静态的,因为如果它是静态的,run()调用的方法也必须是静态的,并且无法访问非静态的数据成员(我必须丑陋地将它们作为参数传递给方法) .

编译错误的原因是什么,什么是解决方案?

c++ static static-methods const

0
推荐指数
1
解决办法
174
查看次数

PHP:这个"未定义变量"异常是我的静态方法的范围问题吗?

我有一个静态函数,它在进入foreach()循环之前获得了一些变量.
从内部foreach(),我试着调用我的$pnUuidvar,然后得到

未处理的异常 未定义的变量:pnUuid

我可以成功地在循环之前回显var ,也可以循环成功回显,如果我立即跟着die()或用continue.
调用global $pnUuid也绕过了异常,但是var是NULL :(

public static function find( $input ) 
{
    // instantiate
    $resultsByBrand = array();
    $brandDictionary = new BrandHashTable();

    // attempt to get a PN UUID
    $partnumber = PartNumberEntity::where( 'number', '=', $input['partnumber'] )->first();
    $pnUuid = empty($partnumber) ?  false : $partnumber->uuid;

    // get current inventory for the PN
    $rzStocklines = RzStockEntity::where('fullpartnumber', '=', $input['partnumber'])
            ->get( array('fullpartnumber', 'manufacturer', …
Run Code Online (Sandbox Code Playgroud)

php static-methods scope

0
推荐指数
1
解决办法
377
查看次数

将delegate和dataSource设置为UITableView

我如何在静态方法中设置委托和dataSource .

+(void)method
{
    UITableView *tv = [[UITableView alloc] init];
    tv.delegate = self;   // Warning: incompatible pointer type
    tv.dataSource = self; // Warning: incompatible pointer type
}
Run Code Online (Sandbox Code Playgroud)

static-methods objective-c uitableview ios

0
推荐指数
1
解决办法
103
查看次数

在静态类中的静态方法参数中使用它?

为什么我要在静态类的静态函数中使用'this'到参数中的对象?我的意思是使用这两种方法之间的真正区别?

public static class Extensions
{
    public static string AsJson(this object obj)
    public static string AsJson2(object obj)
}
Run Code Online (Sandbox Code Playgroud)

c# static-methods

0
推荐指数
1
解决办法
81
查看次数

在构造函数中调用静态方法

这对我来说有点奇怪.由于静态方法可以有一个类的实例,因此人们自然希望编译器不允许在构造函数中调用静态方法.但我已经用每个编译器测试了下面的代码,具有讽刺意味的是,它们都没有给我一个警告.虽然在执行时间内它们都会抛出异常.我在这里错过了什么吗?

#include <iostream>

class Foo
{
public:
    inline Foo()
    {
        std::cout << "testing: var = " << bar() - 1 << '\n';
    }
    ~Foo(){}

    static int bar()
    {
        Foo f;
        f.var = 10;
        return f.test();
    }
private:
    int var;
    int test()
    {
        return var + 1;
    }
};

int main()
{
    Foo foo;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

实例

c++ constructor static-methods

0
推荐指数
1
解决办法
2359
查看次数