小编div*_*der的帖子

Scala:匹配案例类

以下代码声称杰克受雇于建筑业,但简是另一个粗暴经济的受害者:

abstract class Person(name: String) {

  case class Student(name: String, major: String) extends Person(name)

  override def toString(): String = this match {
    case Student(name, major) => name + " studies " + major
    case Worker(name, occupation) => name + " does " + occupation
    case _ => name + " is unemployed"
  }
}

case class Worker(name: String, job: String) extends Person(name)

object Narrator extends Person("Jake") {
  def main(args: Array[String]) {
    var friend: Person = new Student("Jane", "biology")
    println("My friend …
Run Code Online (Sandbox Code Playgroud)

oop scala

8
推荐指数
2
解决办法
205
查看次数

C#; 在不单独声明方法的情况下创建新代理?

我能够编译包含这个的代码:

OperationDelegate myOpDelegate;
static OperatorDefinition[] definitions ={
                new OperatorDefinition("+",2,3,true, new OperationDelegate(OperationAdd)),
            };
delegate double OperationDelegate(double[] args);
static double OperationAdd(double[] args)
            {
                return args[0] + args[1];
            }
Run Code Online (Sandbox Code Playgroud)

但我认为如果我可以做更像这样的事情,我的代码看起来会更清晰:

OperationDelegate myOpDelegate;
static OperatorDefinition[] definitions ={new OperatorDefinition("+",2,3,true, new OperationDelegate({return args[0]+args[1]}))};
delegate double OperationDelegate(double[] args);
Run Code Online (Sandbox Code Playgroud)

因为我想在一个地方定义每个OperatorDefinition的所有内容,而不是单独定义这些函数.有没有办法在C#中做到这一点?

(对我的代码的任何其他批评也是受欢迎的)

c# syntax delegates

6
推荐指数
2
解决办法
2445
查看次数

标签 统计

c# ×1

delegates ×1

oop ×1

scala ×1

syntax ×1