0
- 在Java中
,一切都在类中定义的,除了类本身。
C#和Java是非常相似的语言。
,所以我认为这是C#相同的情况下,直到我看到了两个例子,其中一个枚举类型和委托类型没有任何类中定义:
using System;
enum Color
{
Red,
Green,
Blue
}
class Test
{
static void PrintColor(Color color) {
switch (color) {
case Color.Red:
Console.WriteLine("Red");
break;
case Color.Green:
Console.WriteLine("Green");
break;
case Color.Blue:
Console.WriteLine("Blue");
break;
default:
Console.WriteLine("Unknown color");
break;
}
}
static void Main() {
Color c = Color.Red;
PrintColor(c);
PrintColor(Color.Blue);
}
}
和
using System;
delegate double Function(double x);
class Multiplier
{
double factor;
public Multiplier(double factor) {
this.factor = factor;
}
public double Multiply(double x) {
return x * factor;
}
}
class Test
{
static double Square(double x) {
return x * x;
}
static double[] Apply(double[] a, Function f) {
double[] result = new double[a.Length];
for (int i = 0; i < a.Length; i++) result[i] = f(a[i]);
return result;
}
static void Main() {
double[] a = {0.0, 0.5, 1.0};
double[] squares = Apply(a, Square);
double[] sines = Apply(a, Math.Sin);
Multiplier m = new Multiplier(2.0);
double[] doubles = Apply(a, m.Multiply);
}
}
那么什么可以在C#中的任何类以外定义?
基于上面的例子,任何类型的定义可以在任何类之外定义吗?
谢谢。
在java中,一切都是对象。 – Omore
一个类是一个类型。类型可以在名称空间中或在命名空间中的类(嵌套)中全局定义。我不确定我是否理解你在这里问的问题...... –
enum和delegate是一个类型,任何类型都可以在全局范围内定义。 –