标签: language-features

如何遍历C#中的所有枚举值?

这个问题在这里已有答案:
如何在C#中枚举枚举? 26个答案

public enum Foos
{
    A,
    B,
    C
}
Run Code Online (Sandbox Code Playgroud)

有没有办法循环可能的值Foos

基本上?

foreach(Foo in Foos)
Run Code Online (Sandbox Code Playgroud)

.net c# enums language-features

1359
推荐指数
8
解决办法
67万
查看次数

为什么C#不允许静态方法实现接口?

为什么C#这样设计?

据我所知,接口只描述行为,并且用于描述实现某些行为的接口的类的合同义务.

如果类希望在共享方法中实现该行为,为什么不应该这样做呢?

这是我想到的一个例子:

// These items will be displayed in a list on the screen.
public interface IListItem {
  string ScreenName();
  ...
}

public class Animal: IListItem {
    // All animals will be called "Animal".
    public static string ScreenName() {
        return "Animal";
    }
....
}

public class Person: IListItem {

    private string name;

    // All persons will be called by their individual names.
    public string ScreenName() {
        return name;
    }

    ....

 }
Run Code Online (Sandbox Code Playgroud)

c# oop language-features

435
推荐指数
9
解决办法
18万
查看次数

'static'关键字在一个类中做什么?

具体来说,我正在尝试这段代码:

package hello;

public class Hello {

    Clock clock = new Clock();

    public static void main(String args[]) {
        clock.sayTime();
    }
}
Run Code Online (Sandbox Code Playgroud)

但它给出了错误

无法访问静态方法main中的非静态字段

所以我把声明改为clock:

static Clock clock = new Clock();
Run Code Online (Sandbox Code Playgroud)

它奏效了.在声明之前放置该关键字是什么意思?对于该对象可以做什么,它究竟会做什么和/或限制什么?

java oop static language-features restriction

432
推荐指数
16
解决办法
80万
查看次数

表达与陈述

我问的是关于c#,但我认为它在大多数其他语言中都是一样的.

有没有人对表达式语句有一个很好的定义,有什么区别?

c# language-features expression

425
推荐指数
10
解决办法
6万
查看次数

java中的parseInt和valueOf之间的区别?

这两种方法有什么区别?他们似乎做同样的事情对我来说(也无二parseFloat(),parseDouble(),parseLong()等等,他们如何不同Long.valueOf(string)

编辑:此外,哪些是更好的,并按惯例更常使用?

java language-features

414
推荐指数
6
解决办法
18万
查看次数

什么是python"with"语句专为什么设计的?

with今天第一次遇到了Python 语句.我已经使用Python几个月了,甚至不知道它的存在!鉴于其地位有点模糊,我认为值得问:

  1. 什么是with设计用于的Python 语句?
  2. 你用它来做什么?
  3. 是否有任何我需要注意的问题,或与其使用相关的常见反模式?任何try..finally比它更好用的情况with
  4. 为什么它的使用范围更广?
  5. 哪些标准库类与它兼容?

python language-features with-statement

396
推荐指数
7
解决办法
9万
查看次数

JavaScript的"with"语句是否有合法用途?

艾伦风暴回应我关于with声明的回答的评论让我思考.我很少找到使用这种特定语言功能的理由,并且从未考虑过如何引起麻烦.现在,我很好奇如何有效地利用with它,同时避免陷阱.

你在哪里发现该with声明有用?

javascript language-features with-statement

364
推荐指数
14
解决办法
7万
查看次数

JavaScript Hashmap等效

正如在这个答案的更新3中所表明的那样,这种表示法:

var hash = {};
hash[X]
Run Code Online (Sandbox Code Playgroud)

实际上并不散列对象X; 它实际上只是转换X为一个字符串(通过.toString()它是一个对象,或者是各种基本类型的一些其他内置转换),然后在" hash"中查找该字符串,而不对其进行散列.也不检查对象相等性 - 如果两个不同的对象具有相同的字符串转换,它们将仅相互覆盖.

鉴于此 - 在JavaScript中是否有任何有效的哈希映射实现?(例如,第二个Google结果javascript hashmap产生一个实现,对于任何操作都是O(n).各种其他结果忽略了具有等效字符串表示的不同对象相互覆盖的事实.

javascript language-features hashmap data-structures

328
推荐指数
10
解决办法
56万
查看次数

如何在R中正确使用列表?

简要背景:广泛使用的许多(大多数?)当代编程语言至少有一些共同的ADT [抽象数据类型],特别是

  • string(由字符组成的序列)

  • list(有序的值集合),和

  • 基于地图的类型(将键映射到值的无序数组)

在R编程语言中,前两个分别实现为charactervector.

当我开始学习R时,几乎从一开始就有两件事是显而易见的:list是R中最重要的数据类型(因为它是R的父类data.frame),其次,我无法理解它们是如何工作的,至少不能很好地在我的代码中正确使用它们.

首先,在我看来,R的list数据类型是地图ADT的简单实现(dictionary在Python中,NSMutableDictionary在Objective C中,hash在Perl和Ruby中,object literal在Javascript中,等等).

例如,您可以像创建Python字典一样创建它们,方法是将键值对传递给构造函数(在Python中dict不是这样list):

x = list("ev1"=10, "ev2"=15, "rv"="Group 1")
Run Code Online (Sandbox Code Playgroud)

并且您可以像访问Python字典那样访问R List的项目,例如x['ev1'].同样,您可以通过以下方式仅检索"键"或仅检索"值":

names(x)    # fetch just the 'keys' of an R list
# [1] "ev1" "ev2" "rv"

unlist(x)   # fetch just the 'values' of an R list
#   ev1       ev2        rv 
# …
Run Code Online (Sandbox Code Playgroud)

language-features r list abstract-data-type data-structures

308
推荐指数
9
解决办法
20万
查看次数

java中的接口和@interface有什么区别?

自从90年代末在大学期间使用JBuilder以来我没有触及Java,所以我有点失去联系 - 无论如何我本周一直在研究一个小型Java项目,并使用Intellij IDEA作为我的IDE ,改变我的常规.Net开发速度.

我注意到它支持添加接口和@interfaces,什么是@interface,它与普通接口有什么不同?

public interface Test {
}
Run Code Online (Sandbox Code Playgroud)

public @interface Test {
}
Run Code Online (Sandbox Code Playgroud)

我做了一些搜索,但找不到大量有用的信息引用@interface.

java language-features annotations interface

285
推荐指数
5
解决办法
9万
查看次数