标签: default

为什么我必须在默认为0时为C#中的int赋值?

这有效:

class MyClass
{
    int a;

    public MyClass()
    {
        int b = a;
    }
}
Run Code Online (Sandbox Code Playgroud)

但这会产生编译错误("使用未分配的局部变量'a'"):

class MyClass
{
    public MyClass()
    {
        int a;
        int b = a;
    }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,这是因为在第一个例子中,从技术上讲,编译器不知道没有分配'a'.在后一个例子中,'a'是在本地定义的,因此很容易跟踪.

但为什么后一个例子不起作用?

不要将整数默认为0吗?这是编译器对"最佳实践"强制执行的操作.还是有其他原因吗?

c# int default initialization default-value

24
推荐指数
2
解决办法
4756
查看次数

默认实现还是抽象方法?

将方法的默认实现放在超类中更好,并在子类想要偏离它时重写它,或者你应该只留下超类方法摘要,并在许多子类中重复正常实现?

例如,我参与的项目有一个类,用于指定它应该停止的条件.抽象类如下:

public abstract class HaltingCondition{
    public abstract boolean isFinished(State s);
}
Run Code Online (Sandbox Code Playgroud)

一个简单的实现可能是:

public class AlwaysHaltingCondition extends HaltingCondition{
    public boolean isFinished(State s){
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

我们用对象做这个的原因是我们可以随意组合这些对象.例如:

public class ConjunctionHaltingCondition extends HaltingCondition{
    private Set<HaltingCondition> conditions;

    public void isFinished(State s){
        boolean finished = true;
        Iterator<HaltingCondition> it = conditions.iterator();
        while(it.hasNext()){
            finished = finished && it.next().isFinished(s);
        }
        return finished;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我们有一些暂停条件需要通知事件已经发生.例如:

public class HaltAfterAnyEventHaltingCondition extends HaltingCondition{
    private boolean eventHasOccurred = false;

    public void eventHasOccurred(Event e){
        eventHasOccurred = true;
    }

    public boolean isFinished(State …
Run Code Online (Sandbox Code Playgroud)

java polymorphism default abstract-methods

24
推荐指数
1
解决办法
2万
查看次数

用于"检查IE是否为默认浏览器"的Windows注册表项?

在工具 - > Internet选项 - >程序下的IE中,有一个标有"如果Internet Explorer不是默认Web浏览器,请告诉我"的复选框.与此复选框对应的注册表项是什么?我问的原因是我想以编程方式抑制此检查.

澄清:我不想找到默认的浏览器,我想停止IE检查它是否是启动时的默认浏览器.

registry internet-explorer default

24
推荐指数
2
解决办法
9万
查看次数

Android:更改默认的Home Application

对于某些特定要求,我需要使用我的自定义主页应用程序更改Android默认主页应用程序(我的应用程序中的设置将切换默认主页=我的应用程序或以前的主页)

我不希望用户访问非常复杂的android设置.

任何人都可以帮我解决它在哪里注册launcher.apk默认的家庭应用程序或如何更改它

我唯一能找到的就是那个老问题:如何更改默认的Android桌面应用程序?

但根本没有答案.

我已经看到市场上的HomeSwitcher做了这个伎俩,但对于可能肯定很忙的开发人员却没有答案.

编辑

我在网站http://www.mail-archive.com/android-developers@googlegroups.com/msg74167.html上找到了这个

但是我遇到了同样的问题:

这是我的代码:

    private void makePreferred() {
            PackageManager pm = getPackageManager();
            IntentFilter f = new IntentFilter("android.intent.action.MAIN");
            f.addCategory("android.intent.category.HOME");
            f.addCategory("android.intent.category.DEFAULT");
            ComponentName cn = new ComponentName("com.example.android.home", "com.example.android.home.Home");
            pm.addPreferredActivity(f, IntentFilter.MATCH_CATEGORY_EMPTY, null, cn);
Run Code Online (Sandbox Code Playgroud)

android.permission.SET_PREFERRED_APPLICATIONS在清单中有一套.在执行上面的代码之后,日志声明已经添加了预期的内容(与我从IntentResolver列表中勾选"Make default"时相同的日志).但是,当我单击home继续时,列表仍会显示,日志显示:

INFO/PackageManager(52): Result set changed, dropping preferred
activity for Intent { act=android.intent.action.MAIN cat=
[android.intent.category.HOME] flg=0x10200000 } type null
Run Code Online (Sandbox Code Playgroud)

因此,解析器似乎删除了默认条目.我做错了什么,或者这是一种安全措施?这有什么想法?

android default android-homebutton

23
推荐指数
2
解决办法
3万
查看次数

设置HTML文本输入框的"默认"值.单击ESC时还原该值

当Web表单写入浏览器时,浏览器会记住文本INPUT框的初始值.即.当它像这样接收HTML时:

<input type="text" value="something">
Run Code Online (Sandbox Code Playgroud)

浏览器会记住"某事"作为初始/默认值.当用户开始在其上键入时,然后点击ESC,浏览器将该字段恢复为初始值(如果当前最初为空,则为空白).

但是,在以编程方式创建文本输入框时,按ESC键似乎总是空白,即使我使用默认值创建它,如下所示:

$('<input type="text" value="something">')
Run Code Online (Sandbox Code Playgroud)

浏览器不会将此计为默认值,并且在按ESC时不会恢复为默认值.所以我的问题是,有没有办法在代码中创建一个文本框,并以某种方式为其分配一个默认值,所以ESC键的工作方式就像浏览器在HTML文档中收到它一样?

html default input placeholder

23
推荐指数
2
解决办法
18万
查看次数

如何更改Android O/Oreo/api 26应用程序语言

我想改变应用程序的语言,直到API 26才能正常工作.

对于api> 25我Locale.setDefault(Locale.Category.DISPLAY, mynewlanglocale);之前提出setContentView(R.layout.activity_main);但没有任何变化.

文档不解释太多关于这一点.

java android locale default

23
推荐指数
3
解决办法
1万
查看次数

首次安装时将Eclipse屏幕重置为默认值

如何重置最初打开Eclipse时的风.我意外地关闭了窗口,现在我找不到列出项目的窗口,所以我无法运行任何东西.请指教.谢谢.

PS Reset透视图通过WINDOW选项卡无法重置为默认设置,只有最后一个屏幕,我搞砸了.

eclipse default screen reset

22
推荐指数
4
解决办法
6万
查看次数

获取Postgres中表列的默认值?

我正在寻找一种方法来运行查询以查找Postgres中表的列的默认值.例如,如果我使用以下查询创建了一个表:

**编者注:我修改了表定义,因为它对问题没有影响.

CREATE TABLE mytable (
    integer int DEFAULT 2,
    text varchar(64) DEFAULT 'I am default',
    moretext varchar(64) DEFAULT 'I am also default',
    unimportant int 
);
Run Code Online (Sandbox Code Playgroud)

我需要一个查询,告诉我,在某种格式中,默认值integer是2,text是'我是默认',并且moretext'我也是默认'.查询结果可以包含任何其他没有默认值的列的任何值,即,unimportant对我的目的而言并不重要,并且根本不重要.

sql postgresql default

22
推荐指数
3
解决办法
2万
查看次数

有序核心数据关系 - 如何管理或默认排序是什么?

我尽力在这个论坛和网络上搜索答案,虽然我找到了一些相关的主题,但我找不到我想要的答案.我很抱歉,如果已经有一个,我可能已经错过了.

在核心数据中添加关系时,可以选择将关系设置为"Ordered"(复选框).核心数据如何管理关系的排序或什么是默认排序(如果有的话)?

说,我有一个Header和Detail实体.我指定了"To-Many"关系(Header可以有很多细节)并选中"Ordered"复选框.当我对"标题"进行提取时,我可以指定它将被命令的属性 - 我很好,我的问题与此无关.我将结果放在tableview上,当用户点击详细信息时,我将在另一个tableview中显示Detail.我没有使用FetchResultController来显示细节,我只是通过关系访问细节.这意味着我没有为细节指定任何排序.我的问题与此有关,核心数据如何管理详细信息的排序?由于我将关系指定为"Ordered",它是否真的按顺序排列细节?如果是,默认订单行为是什么?

default core-data objective-c ios

22
推荐指数
1
解决办法
6190
查看次数

在类模板实例化中明确使用某些参数的默认值

类模板可以有多个参数都具有默认值.

template<typename UnderlyingT0 = int, typename UnderlyingtT1 = long, typename StringT = std::string>
struct options;
Run Code Online (Sandbox Code Playgroud)

使用默认参数来设置模板很简单:

options<> my_default_options;
Run Code Online (Sandbox Code Playgroud)

但是,如果我想更改参数的子集呢?

options<int, int, std::wstring> wstring_options;
Run Code Online (Sandbox Code Playgroud)

int第一个参数的默认值并不明显,而第二个参数则不是.有没有类似的东西

options<default, int, std::wstring> wstring_options;
Run Code Online (Sandbox Code Playgroud)

在C++中?

c++ templates default c++11

22
推荐指数
3
解决办法
1156
查看次数