我想作一个类 绘制这将有静态方法 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) 我尝试使用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构造函数移动应该可以工作,但是然后保存和加载将在两个地方或构造函数不会在一个地方...
我有一个Users类和一个Log类.在Users类中,我有几种方法.如果在方法中发现错误,我会调用Log类中的静态方法将错误写入文本文件和数据库.但是,尝试实际调用静态方法不起作用,我没有收到错误消息.
我使用'require_once'Log.php'在Users类中包含Log类,并使用Log :: log_error()调用该方法.
那么这里发生了什么?
所以,简而言之.我有两节课.
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()进行静态引用.我确定我错过了一些简单但却找不到的东西.谢谢!
我试图结束一个永无止境的圈子.我需要从另一个类调用一个非静态的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()?
我有一个方法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()调用的方法也必须是静态的,并且无法访问非静态的数据成员(我必须丑陋地将它们作为参数传递给方法) .
编译错误的原因是什么,什么是解决方案?
我有一个静态函数,它在进入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) 我如何在静态方法中设置委托和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) 为什么我要在静态类的静态函数中使用'this'到参数中的对象?我的意思是使用这两种方法之间的真正区别?
public static class Extensions
{
public static string AsJson(this object obj)
public static string AsJson2(object obj)
}
Run Code Online (Sandbox Code Playgroud) 这对我来说有点奇怪.由于静态方法可以有一个类的实例,因此人们自然希望编译器不允许在构造函数中调用静态方法.但我已经用每个编译器测试了下面的代码,具有讽刺意味的是,它们都没有给我一个警告.虽然在执行时间内它们都会抛出异常.我在这里错过了什么吗?
#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)
static-methods ×10
c# ×3
c++ ×2
constructor ×2
java ×2
php ×2
android ×1
boolean ×1
const ×1
ios ×1
objective-c ×1
scope ×1
static ×1
uitableview ×1