stanford-oval/wikipedia huggingface dataset:
C♯
C# 9的特性 > 最上層陳述式或称顶级语句

在以前的版本，開發者在撰寫最上層陳述式(如Program.cs)程式碼時，需要包含完整的namespace與class架構，因此如果要撰寫Hello World程式時，程式碼就會是：
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}
但是在C# 9之後，最上層陳述式的程式碼不需要包含namespace以及class，可將其簡化為：
using System;

Console.WriteLine("Hello World!");
//或者简化为一行语句：
System.Console.WriteLine("Hello World!");
注意， 一个程序中， 只能有一个文件使用顶级语句， 并且顶级语句必须位于命名空间或类型定义之前。
C# 9的特性 > lambda弃元参数

Func<int, int, int> zero = (_, _) => 0;
Func<int, int, int> func = delegate (int _, int _) { return 0; };
在 C# 9 之前，即便不使用的 Lambda 参数也需要给它命名。C# 9 支持弃元参数一方面简化了命名，另一方面也节省了内存分配。更重要的是它使得编程的意图更明确，让人一看就知道这个参数是不用的，增强了代码的可读性和可维护性。
C# 9的特性 > 只能初始化的设置器

Init only setters，只能通过对象初始化进行赋值的属性。
public class InitDemo
{
    public string Start { get; init; }
    public string Stop { get; init; }
}
 
// initDemo.Start = "Now"; // Error
// initDemo.End = "Tomorrow"; // Error
 
var initDemo = new InitDemo
{
    Start = "Now",
    Stop = "Tomorrow"
};
C# 9的特性 > 函数指针

使用 delegate* 可以声明函数指针。
unsafe class FunctionPointer {
 static int GetLength(string s) => s.Length;
 delegate*<string, int> functionPointer = &GetLength;
}
 
public void Test() {
 Console.WriteLine(functionPointer("test")); // 4;
}
C# 9的特性 > 跳过本地初始化

[System.Runtime.CompilerServices.SkipLocalsInit]
static unsafe void DemoLocalsInit() {
 int x;
 // 注意， x 没有初始化， 输出结果不确定；
 Console.WriteLine(*&x);
}
C# 9的特性 > 原生整数类型

两个新的整数类型 nint 和 nunit ， 依赖宿主机以及编译设定。
C# 9的特性 > 协变返回类型

协变返回类型为重写方法的返回类型提供了灵活性。覆盖方法可以返回从被覆盖的基础方法的返回类型派生的类型。
class Person
{
    public virtual Person GetPerson() { return new Person(); }
}

class Student : Person
{
    public override Student GetPerson() { return new Student(); }
}
C# 9的特性 > 模块初始化代码

ModuleInitializerAttribute 为组件 (assembly) 定义初始化代码， 当初始化/加载时执行， 可以类比类的静态构造函数， 但是是组件级别的。
必须是静态的、无参数的、无返回值的方法；
不能是范型方法，也不能包含在范型类中；
不能是私有函数，必须是公开 (public) 或者内部 (internal) 的函数；
C# 9的特性 > 静态 lambda 表达式

static 修饰符添加到 lambda 表达式或匿名方法 。这将无法捕获局部变量或实例状态，从而防止意外捕获其他变量。
C# 9的特性 > 分部方法扩展

移除了分部方法的下述限制：
必须具有 void 返回类型。
不能具有 out 参数。
不能具有任何可访问性（隐式 private ）。
C# 9的特性 > 初始化表达式的简化

如果创建对象的类型已知时，可以在new表达式中省略该类型。
Point p = new(1, 1);
Dictionary<string, int> dict = new();
 
Point[] points = { new(1, 1), new (2, 2), new (3, 3) };
var list = new List<Point> { new(1, 1), new(2, 2), new(3, 3)};
C# 9的特性 > 在本地函数上添加标记

using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
namespace CoreApp2
{  
    class Program
    {
        static void Main(string[] args)
        {
            [Conditional("DEBUG")]
            static void DoSomething([NotNull] string test)
            {
                System.Console.WriteLine("Do it!");
            }
            DoSomething("Doing!");
        }
   }
}
C# 9的特性 > GetEnumerator 扩展

可以为任意类型添加一个 GetEnumerator 扩展方法， 返回一个 IEnumerator 或者 IAsyncEnumerator 实例， 从而在 foreach 循环中使用。
using System.Collections.Generic;
using System.Collections.ObjectModel;
namespace CoreApp2
{
    public static class Extensions
    {
        public static IEnumerator<T> GetEnumerator<T>(this IEnumerator<T> enumerator) => enumerator;
    }

    class Program
    {
        static void Main(string[] args)
        {
            IEnumerator<string> enumerator = new Collection<string> {"A", "B", "C"}.GetEnumerator();
            foreach (var item in enumerator)
            {
                Console.WriteLine(item);
            }
        }
    }
}
C# 9的特性 > 模式匹配增强

Type patterns 类型匹配，判断一个变量的类型
object obj = new int();
var type = obj switch
{
    string => "string",
    int => "int",
    _ => "obj"
};
Console.WriteLine(type); // int
Relational patterns 关系匹配：
class Person
{ 
    public string name; 
    public int age; 
    public Person(string a, int b) { name = a;age = b; }
    public void Deconstruct(out string a,out int b){a = name;b = age; }
}

class Program
{        
    static void Main(string[] args)
    {
        var person1 = new Person("Alice", 40);
        var inRange = person1 switch
        {
            (_, < 18) => "less than 18",
            (_, > 18) => "greater than 18",
            (_, 18) => "18 years old!"
        };
        Console.WriteLine(inRange); // greater than 18
    }
}
Conjunctive and patterns 逻辑合取匹配：
// And pattern
var person1 = new Person("Alice", 40);
var ageInRange = person1 switch
{
    (_, < 18) => "less than 18",
    ("Zhang Zhimin", _) and (_, >= 18) => "Alice is greater than 18"
};
Console.WriteLine(ageInRange); // Alice is greater than 18
Disjunctive or patterns 逻辑析取匹配：
// Or pattern
var person1 = new Person("Alice", 40);
var ageInRange = person1 switch
{
    (_, < 18) => "less than 18",
    (_, 18) or (_, > 18) => "18 or greater"
};
Console.WriteLine(ageInRange); // 18 or greater
Negated not patterns 逻辑非匹配
// Not pattern
var person1 = new Person("Alice", 40);
var meOrNot = person1 switch
{
    not ("Alice", 40) => "Not me!",
    _ => "Me :-)"
};
Console.WriteLine(meOrNot); // Me :-)
Parenthesized patterns 带括号的优先级匹配：
// Parenthesized patterns
var is10 = new IsNumber(true, 10);
var n10 = is10 switch
{
    ((_, > 1 and < 5) and (_, > 5 and < 9)) or (_, 10) => "10",
    _ => "not 10"
};
Console.WriteLine(n10); // 10
C# 10的特性 > record struct

解决了 record 只能给 class 而不能给 struct 用的问题：
record struct Point(int X, int Y);
C# 10的特性 > sealed record ToString 方法

可以把 record 里的 ToString 方法标记成 sealed
C# 10的特性 > struct 无参构造函数

无参构造函数使得new struct() 和 default(struct) 的语义不一样
C# 10的特性 > 用with创建新的匿名类型对象

var x = new { A = 1, B = 2 };
var y = x with { A = 3 };
这里 y.A 将会是 3 。
C# 10的特性 > 全局的 using

可以给整个项目启用 using，不需要每个文件都写一份。
C# 10的特性 > 文件范围的 namespace

以前写 namespace 还得带一层大括号。现在如果一个文件里只有一个 namespace 的话，直接在文件开头写：namespace MyNamespace;
C# 10的特性 > 常量字符串插值

const string x = "hello";
const string y = $"{x}, world!";
C# 10的特性 > lambda的改进 > lambda 可以带 attributes

f = [Foo] (x) => x; // 给 lambda 设置
f = [return: Foo] (x) => x; // 给 lambda 返回值设置
f = ([Foo] x) => x; // 给 lambda 参数设置
C# 10的特性 > lambda的改进 > 指定返回值类型

此前 C# 的 lambda 返回值类型靠推导，C# 10允许在参数列表之前显式指定 lambda 返回值类型：
f = int () => 4;
C# 10的特性 > lambda的改进 > 支持 ref 、in 、out 等修饰

f = ref int (ref int x) => ref x; // 返回一个参数的引用
C# 10的特性 > lambda的改进 > 头等函数

函数可以隐式转换到 delegate，于是函数上升为头等函数(first function)：
void Foo() { Console.WriteLine("hello"); }
var x = Foo;
x(); // hello
C# 10的特性 > lambda的改进 > 自然委托类型

lambda 可自动创建自然委托类型，于是不再需要写出类型：
var f = () => 1; // Func<int>
var g = string (int x, string y) => $"{y}{x}"; // Func<int, string, string>
var h = "test".GetHashCode; // Func<int>
C# 10的特性 > lambda的改进 > CallerArgumentExpression

使用CallerArgumentExpression这个attribute，编译器会自动填充调用参数的表达式字符串，例如：
void Foo(int value, [CallerArgumentExpression("value")] string? expression = null)
{
    Console.WriteLine(expression + " = " + value);
}
当你调用 Foo(4 + 5) 时，会输出 4 + 5 = 9。这对测试框架极其有用
C# 10的特性 > tuple 的混合定义和使用

int y = 0;
(var x, y, var z) = (1, 2, 3);
于是 y 就变成 2 了，同时还创建了两个变量 x 和 z，分别是 1 和 3 。
C# 10的特性 > 接口支持抽象静态方法

.NET 6中这个特性为preview特性。
C# 10的特性 > 在方法上指定 AsyncMethodBuilder

在方法上用 [AsyncMethodBuilder(...)]，来使用自己实现的 async method builder，代替自带的 Task 或者 ValueTask 的异步方法构造器。有助于实现零开销的异步方法。
C# 10的特性 > line 指示器支持行列和范围

以前 #line 只能用来指定一个文件中的某一行，现在可以指定行列和范围：
#line (startLine, startChar) - (endLine, endChar) charOffset "fileName"
// 比如 #line (1, 1) - (2, 2) 3 "test.cs"
C# 10的特性 > 嵌套属性模式匹配改进

以前在匹配嵌套属性的时候需要这么写：
if (a is { X: { Y: { Z: 4 } } }) { ... }
现在只需要简单的：
if (a is { X.Y.Z: 4 }) { ... }
C# 10的特性 > 改进的字符串插值

实现接近零开销的字符串插值。
C# 10的特性 > Source Generator v2

包括强类型的代码构建器，以及增量编译的支持等
C# 11的特性 > 泛型属性

C# 11 开始支持属性（attribute）为泛型类，即允许声明基类为System.Attribute的泛型类：
public class GenericAttribute<T> : Attribute { }
C# 11的特性 > 静态接口方法

C# 11 开始允许接口中定义静态方法（包括运算符重载方法），实现该接口的类必须包含该静态方法：
public interface IGetNext<T> where T : IGetNext<T>
{
    static abstract T operator ++(T other);
}
C# 11的特性 > 无符号右移运算符 >>>

新增无符号右移运算符 >>>，用于对带符号数进行逻辑右移。
C# 11的特性 > 泛型数学支持

对泛型及其对象进行数学操作的支持。基于静态接口方法特性，自 .NET 8.0 起，在System命名空间中提供数学运算相关泛型接口，以支持泛型的运算操作：
public static TResult Sum<T, TResult>(IEnumerable<T> values)
    where T : INumber<T>
    where TResult : INumber<TResult>
{
    TResult result = TResult.Zero;

    foreach (var value in values)
    {
        result += TResult.Create(value);
    }

    return result;
}
C# 11的特性 > 字符串内插中的换行符

允许内插字符串中{与}内的文本跨多个行
C# 11的特性 > 原始字符串文本

原始字符串文本以 """ 开始并以 """ 结束，允许多行字符串，若为多行字符串则以单独的一行 """ 结束，且字符串的缩进以末尾的 """ 的起始位置为基准。原始字符串文本不进行任何转义操作，但允许字符串内插（开头的 $ 数量代表内插所需要的花括号数）：
var x = 1;
var y = 2;
var code1 = """int i = 0;""";
var code2 = $"""int x = {x};""";
var code3 = $$"""
    #include <stdio.h>
    int main(void) {
        const char *s = "{y} = {{y}}";  // {y} = 2
        return 0;
    }
    """;
Console.WriteLine($"code1:\n{code1}\n");
Console.WriteLine($"code2:\n{code2}\n");
Console.WriteLine($"code3:\n{code3}\n");
C# 11的特性 > UTF-8 字符串字面量

可以对字符串字面量指定 u8 后缀来指定 UTF-8 字符编码的字符串字面量，其类型为ReadOnlySpan<byte>：
C# 11的特性 > 列表模式

使用[和]可以定义列表模式，用于模式匹配：
int[] numbers = { 1, 2, 3 };

Console.WriteLine(numbers is [1, 2, 3]);             // True
Console.WriteLine(numbers is [1, 2, 4]);             // False
Console.WriteLine(numbers is [1, 2, 3, 4]);          // False
Console.WriteLine(numbers is [0 or 1, <= 2, >= 3]);  // True
C# 11的特性 > 数值 IntPtr 和 UIntPtr

C# 11 起 nint 和 nuint 类型的别名分别为 IntPtr 和 UIntPtr（C# 9 中它们仅被认为是“相似”的）。
C# 11的特性 > 改进了方法组向委托的转换

优化了方法组向委托转换的性能。例如下述代码中，在 C# 11 前，Sum 比 SumMethodGroup 性能更高：
static readonly List<int> Numbers = Enumberable.Range(0, 100).ToList();

public int Sum()
{
    return Numbers.Where(x => Filter(x)).Sum(); // <- faster
}

public int SumMethodGroup()
{
    return Numbers.Where(Filter).Sum();         // <- slower
}

static bool Filter(int number)
{
    return number > 50;
}
C# 13的特性 > params 集合

params 修饰符不再仅限于数组类型。现在可以将 params 用于任何已识别的集合类型，包括 System.Span<T>、System.ReadOnlySpan<T> 以及实现 System.Collections.Generic.IEnumerable<T> 并具有 Add 方法的类型。除了具体类型外，接口 System.Collections.Generic.IEnumerable<T>、System.Collections.Generic.IReadOnlyCollection<T>、System.Collections.Generic.IReadOnlyList<T>、System.Collections.Generic.ICollection<T> 和 System.Collections.Generic.IList<T> 也可以使用。
当使用接口类型时，编译器会合成提供的参数的存储。详情请参考Params collections的功能规范 （页面存档备份，存于）。
C# 13的特性 > 新的锁对象

.NET 9 运行时引入了一种新的线程同步类型 System.Threading.Lock，该类型通过其 API 提供了更好的线程同步。Lock.EnterScope() 方法进入一个排他作用域，返回的 ref struct 支持 Dispose() 模式以退出排他作用域。C# 的 lock 语句识别 Lock 对象，并使用更新的 API，而不是传统的 System.Threading.Monitor API。如果将 Lock 对象转换为其他类型，编译器会生成基于 Monitor 的代码。详情请参考该对象的功能规范 （页面存档备份，存于）。
C# 13的特性 > 新的ESCAPE转义序列

可以使用 \e 作为 ESCAPE 字符 ( Unicode U+001B ) 的字面值转义序列。 在该版本以前，ESCAPE使用的是 \u001b 或 \x1b。
不建议使用 \x1b，因为如果 1b 后面的下一个字符是有效的十六进制数字，则那些字符会成为转义序列的一部分。
C# 13的特性 > 方法组自然特性

该特性对涉及方法组的重载解析进行了小幅优化。方法组是指具有相同名称的所有重载方法。此前，编译器会构建方法组的完整候选方法集，并从中确定自然类型。新的行为是在每个作用域修剪候选方法集，移除不适用的方法（通常是具有错误泛型参数或不满足约束的泛型方法）。如果在给定作用域中找到的所有候选方法都不匹配，则方法组没有自然类型。
以下是新行为的具体改进：
C# 13的特性 > 方法组自然特性 > 概述

优化了方法组自然类型的确定：
按作用域逐步考虑候选方法（首先是实例方法，然后是每个后续作用域的扩展方法）。
修剪没有成功机会的候选方法，以免它们干扰确定唯一签名：
当没有提供类型参数时，修剪泛型实例方法（如 var x = M;）。
基于是否能减少扩展和约束来修剪泛型扩展方法。
C# 13的特性 > 方法组自然特性 > 背景

在 C# 10 中，方法组获得了一种弱自然类型。这种类型是“弱类型”，仅在方法组未被目标类型化时才会发挥作用（即它在 System.Action a = MethodGroup; 中不起作用）。这种弱自然类型允许诸如 var x = MethodGroup; 的场景。
方法组在所有候选方法具有共同签名时具有自然类型。如果方法组可能包含扩展方法，则候选方法包括包含类型和所有扩展方法作用域。
C# 13的特性 > 方法组自然特性 > 应用

在实践中，这意味着我们将：
构建所有候选方法的集合：
如果方法在相关类型上，如果它们是静态的且接收者是类型，或者它们是非静态的且接收者是值，则这些方法在集合中。
可以减少的所有作用域中的扩展方法也在集合中。
如果所有候选方法的签名不匹配，则方法组没有自然类型。
如果结果签名的参数数量与提供的类型参数数量不匹配，则方法组没有自然类型。
否则，结果签名将用作自然类型。
C# 13的特性 > 方法组自然特性 > 提案

原则是按作用域逐步进行，并尽早修剪我们知道无法成功的候选方法（与重载解析中使用的原则相同）。
对于每个作用域，我们构建所有候选方法的集合：
对于初始作用域，如果方法在相关类型上且其参数数量与提供的类型参数数量匹配，并且满足提供的类型参数的约束，则这些方法在集合中；如果它们是静态的且接收者是类型，或者它们是非静态的且接收者是值。
对于后续作用域，如果扩展方法可以用提供的类型参数替换，并使用接收者的值进行减少，同时满足约束，则这些方法在集合中。
如果在给定作用域中没有候选方法，则继续到下一个作用域。
如果所有候选方法的签名不匹配，则方法组没有自然类型。
否则，结果签名将用作自然类型。
如果所有作用域都已耗尽，则方法组没有自然类型。
C# 13的特性 > 隐式索引访问

现在可以在对象初始化表达式中使用隐式“从末尾”索引运算符 ^。
例如，可以在对象初始化器中初始化数组：
var countdown = new TimerRemaining()
{
    buffer =
    {
        [^1] = 0,
        [^2] = 1,
        [^3] = 2,
        [^4] = 3,
        [^5] = 4,
        [^6] = 5,
        [^7] = 6,
        [^8] = 7,
        [^9] = 8,
        [^10] = 9
    }
};
上述示例创建了一个从 9 到 0 递减的数组。
在 C# 13 之前，^ 运算符不能在对象初始化器中使用，必须从前面索引元素。
C# 13的特性 > 迭代器和异步方法中的 ref 和 unsafe

在 C# 13 之前，迭代器方法（使用 yield return 的方法）和异步方法不能声明本地 ref 变量，也不能有 unsafe 上下文。在 C# 13 中，异步方法可以声明本地 ref 变量或 ref struct 类型的本地变量，但这些变量不能跨越 await 边界访问。同样，它们也不能跨越 yield return 边界访问。这一放宽的限制使编译器能够在更多地方允许可验证的安全使用 ref 本地变量和 ref struct 类型。你可以在这些方法中安全地使用 System.ReadOnlySpan<T> 等类型。如果违反了安全规则，编译器会发出警告。
C# 13的特性 > ref struct 接口

在 C# 13 之前，ref struct 类型不能实现接口。从 C# 13 开始，它们可以实现接口。为了确保 ref 安全规则，ref struct 类型不能转换为接口类型。这是一种装箱转换，可能违反 ref 安全。
C# 13的特性 > allows ref struct

在 C# 13 之前，ref struct 类型不能作为泛型类型或方法的类型参数声明。现在，泛型类型声明可以添加反约束 allows ref struct。这种反约束声明该类型参数提供的类型参数可以是 ref struct 类型。编译器在该类型参数的所有实例上强制执行 ref 安全规则。这使得 System.Span<T> 和 System.ReadOnlySpan<T> 等类型可以在适用的地方与泛型算法一起使用。
详情请参阅 where 更新 （页面存档备份，存于）和泛型约束编程指南 （页面存档备份，存于）文章。
C# 13的特性 > 更多的部分成员

在 C# 13 中，可以声明分部属性和分部索引器。分部属性和索引器通常遵循与分部方法相同的规则：创建一个声明声明和一个实现声明。两个声明的签名必须匹配。一个限制是不能为分部属性使用自动属性声明。未声明主体的属性被视为声明声明。详情请参阅Partial members （页面存档备份，存于）文章。
C# 13的特性 > 重载解析优先级

在 C# 13 中，编译器识别 OverloadResolutionPriorityAttribute 以优先选择一个重载而不是另一个。库作者可以使用此属性确保新的、更好的重载优先于现有重载。例如，你可能会添加一个性能更高的新重载。你不希望破坏使用你库的现有代码，但希望用户在重新编译时更新到新版本。你可以使用重载解析优先级来通知编译器应优先选择哪个重载。优先级最高的重载会被优先选择。此功能旨在帮助库作者在添加新重载时避免歧义。库作者应谨慎使用此属性以避免混淆。
程序的执行

C#通常不被编译成为能够直接在计算机上执行的二进制本地代码。与Java类似，它被编译成为中间代码（Microsoft Intermediate Language），然后通过.NET Framework的虚拟机——被称为——执行。
所有的.Net编程语言都被编译成这种被称为通用中间语言的中间代码。因此虽然最终的程序在表面上仍然与传统意义上的可执行文件都具有“.exe”的后缀名。如果计算机上没有安装.Net Framework，那么这些程序会弹出对话框，要求用户下载.net framework。
在程序执行时，.Net Framework将中间代码翻译成为二进制机器码，从而使它得到正确的运行。最终的二进制代码被存储在一个缓冲区（Buffer）中。所以一旦程序使用了相同的代码，那么将会调用缓冲区中的版本。这样如果一个.Net程序第二次被运行，那么这种翻译不需要进行第二次，速度明显加快。
标准化

微软公司已经向ECMA申请将C#作为一种标准。在2001年12月，ECMA发布了ECMA-334 C#语言规范。C#在2003年成为一个ISO标准（ISO/IEC 23270）。现在有一些独立的实现正在进行，包括：
自由软件基金会的dotGNU Portable.NET（页面存档备份，存于）
Mono（页面存档备份，存于）
Baltie - C# IDE for children and young Baltie（页面存档备份，存于）
示例 > C# 的Hello World程式

下面是一個在上輸出Hello World的小，這種通常作為開始學習語言的第一個步驟：
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}
实现

微软正在引领开源参考 C# 编译器和工具集的开发。 第一个编译器 Roslyn编译成中间语言（IL），第二个编译器 RyuJIT， 是一个 JIT（即时）编译器，它是动态的，进行动态优化并编译将 IL 转换为 CPU 前端的本机代码。 RyuJIT 是开源的，用 C++ 编写。 Roslyn 完全是用 托管代码 (C#)编写的，已经开放并且功能以 API 的形式出现。因此，它使开发人员能够创建重构和诊断工具。 官方实现的两个分支是 .NET Framework（闭源，仅限 Windows）和 .NET Core（开源，跨平台）；它们最终融合为一个开源实现：.NET 5.0。 在 .NET Framework 4.6 中，新的 JIT 编译器取代了前者。
其他 C# 编译器（其中一些包括公共语言基础结构和 .NET 类库的实现）：
微軟的项目（Rotor Project，目前稱為Shared Source Common Language Infrastructure（英语：）），提供了（Common Language Runtime）的實作與C# 編譯器。但是Shared Source Common Language Infrastructure在2006年的2.0版後就停止了。
由Microsoft贊助的Mono 提供了C# 編譯器，它提供了一个开源 C# 编译器、一个完整的 CLI 开源实现，同時也接近百分之百地實作了.NET Framework。而Mono後來衍伸出由微軟認可的第三方套件Xamarin。
Dot GNU 專案（现已停产）也提供了另一個自由版本的C# 編譯器，也提供了.NET Framework的實作。
游戏引擎 Unity 使用C# 作为其主要脚本语言。由于Microsoft 捐赠了 24,000 美元， Godot 游戏引擎实现了一个可选的 C# 模块。
袁振謙

| 個人 |
| --- | --- | --- | --- |
全名:  Yuen Chun Him
出生日期:   (2006-01-07) 2006年1月7日（19歲）
身高:  
位置:  進攻中場

現在所屬:  岩布斯特U19
球衣號碼:  32
青年隊
2012-2024:  傑志
職業*
| 年份 |  球隊 |   |  （） |
| 2022- |  傑志 |  6 |  (0) |
| 2024- |  → 岩布斯特U19 |  0 |  (0) |

| 2022- |  香港U17 |  1 |  (0) |
 * 職業次數與數僅計算國內聯賽部份 
袁振謙（Yuen Chun Him，2006年1月7日—） ，生於香港，香港足球運動員，司職中場，現時由香港超級聯賽球會傑志外借至岩布斯特。
球員生涯

2022年11月14日，袁振謙年僅16歲，便與傑志簽下職業球員合約。
2022-23年度香港學界足球精英賽，協助聖若瑟書院決賽以12碼擊敗拔萃男書院，繼1998-99年度後再度奪得冠軍，自己獲選為賽事最有價值球員(MVP)。
2023年12月23日，袁振謙於菁英盃分組賽對戰標準流浪的比賽，攻入兩個入球。
榮譽

香港學界足球精英賽最有價值球員(2022-23年度)
參考資料

↑  【學界足球精英賽】入兩球成MVP袁振「謙」稱感意外 舊生兼主帥朱兆基：結果夢幻 （页面存档备份，存于）體路 2023年3月10日
↑  賽馬會菁英盃　補時省兩粒　標準流浪逼和傑志 （页面存档备份，存于） 《on.cc東網》 2023年12月23日
城市

与「」標題相近或相同的条目，請見「」。
：此条目的主题不是、、、、或。
「」至此。关于新井圭一创作的日本漫画，请见「」。
紐約是世界上最大的都市之一
，是指人口集中、工商發達、居民以非农业人口为主的地区，通常是周围地区的政治、经济、文化中心，一般包括了住宅区、工业区和商业区等機能分區，并且具备行政管辖功能。城市中有楼房、街道和公園等基礎建設。城市的行政管辖功能（即所謂的「建制市」）可能涉及较其本身更广泛的区域。
一般而言城市會有較完善的公共卫生設備、公用事業、土地規劃、住宅及運輸系統。密集的開發方便人們的互動，也便於商業活動的進行。大都市一般會有對應的郊區及卧城。大都市一般也都有其市区，許多人住在郊區，每天通勤到市区上班。若一個城市已擴展到其他都市接壤，此一區域就會形成集合城市。
定义

城市并没有一个明确的定义和标准，不同国家对城市的標準也不一樣，以下列举几例：
定义 > 中華民國（臺灣）

条目：中華民國城市列表
中華民國的都市定義如下：
人口數20,000人以上；
人口密度300人/平方公里以上；
定义 > 美国

条目：美国城市列表
美国城市的定義是由各州法律而定，因此各州也會有不同的城市人口下限，例如麻薩諸塞州的城市人口下限是120,00人，而馬里蘭州的下限則是300人。
定义 > 加拿大

条目：加拿大城市列表
加拿大的城市人口下限为1,000人。
定义 > 中华人民共和国

条目：中華人民共和國城市列表
中国：2006年3月10日，中國国家统计局发布《关于统计上划分城乡的暂行规定》，对“城镇”和“鄉村”進行了新的划分。其中第四条规定，「城镇」是指在中国市镇建制和行政区划基础上，经该规定划定的区域。“城镇”又包括“城区”和“镇区”。第五条规定，城区是指在市辖区和不设区的市中，经该规定划定的区域。
街道办事处所辖的居民委员会地域；
城市公共设施、居住设施等连接到的其他居民委员会地域和村民委员会地域。镇区是指在城区以外的镇和其他区域中，经该规定划定的区域。
镇所辖的居民委员会地域；
镇的公共设施、居住设施等连接到的村民委员会地域；
常住人口在3,000人以上独立的工矿区、开发区、科研单位、大专院校、农场、林场等特殊区域。
定义 > 丹麦

条目：丹麦城市列表
丹麦的城市人口下限为200人。
定义 > 德国

条目：德国城市列表
德国的城市人口下限为2,000人。
定义 > 印度

条目：印度城市列表
印度的城市人口下限为5,000人。
定义 > 马来西亚

条目：马来西亚城市列表
马来西亚的城市人口下限为10,000人。
定义 >

条目：澳大利亚城市列表
澳大利亚最少要有10,000至30,000人才為城市。
定义 > 白俄羅斯

条目：白俄罗斯城市列表
白俄羅斯的憲法把城市分為三種：首都，城市地區的人口超過50,000人的州（Oblast），以及城市地區的人口超過6000人的地區（Raion）。
形成及演進

条目：城市史
城市是人类文明的重要组成部分，城市也是伴随人类文明与进步发展起来的。普遍認為，真正意義上的城市是工商業發展的產物。
形成及演進 > 起源

最早的人类聚落起源于农业发明之后。西方的理论认为大約一萬年前，中東人類从散居的捕獵及游牧生活進入了农耕时代，人类才开始定居。位於兩河流域的美索不達米亞平原土壤肥沃，适于农业耕种，人类逐渐结束游牧生活，开始了聚落时代。然而原始聚落并不是城市。城市是一种更为高级的人类聚落形式。与原始聚落相比，城市的最显著特征是具有城壕防御的功能。没有防御设施的聚落在原始社会几乎无法生存。最初的聚落防御设施只是以木材修建栅栏，但是这种木墙很容易遭受火攻。因此，真正的城市形成标志是以土筑城，取土之处则形成壕，可以有效防止敌对部落的进攻。最初的聚落人口较少，因此城市规模不大。
中国湖南所发现的城头山遗址，距今6000-7000年，是世界上所有具有城壕防御设施的古代城市形态的源头。城头山遗址已经具有十分完备的城市特征，有土筑城墙、四个城门、四十米宽的城壕；城中有宽阔的大道，城内经过精心的规划，居住区、陶器生产区、墓葬区、祭祀区、生活垃圾填埋区划分的井井有条。城头山遗址古城人口规模大约为3,000-5,000，城内面积约为8万平方米。
形成及演進 > 中古時代

中世紀歐洲城市的演進與東方相比相對遲緩，因为周围的农村提供的余粮不多，再加上實施封建制度的緣故，每个城市和它控制的农村，构成一个小单位，形成相对封闭、自给自足的莊園經濟，工商業並不發達，以致於城市發展停滯不前。然而當時東方的商業城市卻開始崛起，如唐朝的長安及宋朝的汴京；13世纪地中海地區的義大利半島的米兰、威尼斯、佛羅倫斯及拜占庭的君士坦丁堡，或者阿拉伯半島的巴格達等。這些都市由於位居交通要衝，不論是商業、貿易及文化交流均十分興盛，因此得以蓬勃發展。
形成及演進 > 大航海時代

但是1453年君士坦丁堡被鄂圖曼土耳其人攻陷，通往印度及中國的貿易路線遭到阻斷。由於對香料及絲綢等東方商品的需求日益增加，再加上對殖民地和財富的渴望，甚至傳教等因素，造成後來大航海時代的來臨，歐洲經濟中心因此逐漸由地中海移至大西洋沿岸的葡萄牙、西班牙、英國及荷蘭的港口城市。
形成及演進 > 工業時代

繼19世紀的工业革命之后，城市获得了前所未有的发展。工業革命造成了科技快速的進步及許多發明的問世，進而造成許多工廠的建成。由于工廠大多設置在交通方便的大都市附近，造成农民不断涌入這些都市，城市化的現象也開始由工業革命起源的英國向世界各國擴張。到第一次世界大战前夕，英、美、德与法国等工業強國，都市化的程度都相當之高。这不仅是富足的标志，而且是文明的象征。然而在第二次世界大戰時，武器的改良及新型態戰爭的出現，遭受戰火波及而死傷的平民數量大幅增加，再加上都市居民為了躲避攻擊，而大舉遷移至鄉村，造成都市人口銳減。
形成及演進 > 戰後至今日

戰後，鄉村人口大量流都市，使得都市人口迅速增加，由於市區人口日益擁擠，都市面積便大幅增加，與之附近的市鎮及郊區相連，因此形成了許多大型的都會區。之後產業技術的改良及醫療設施的改善，更是加劇了都會區數量及規模的大幅增加，都市化的現象日趨明顯。到了今日，全球已有超過30億的人口居住於都市，然而歐洲、美國及日本等已開發國家的都市發展已近飽和狀態；在拉丁美洲、非洲、中國大陸及印度等地區的都市，人口成長仍然相當迅速。
类型

“城市”的提法本身就包含了两方面的含义：“城”为行政地域的概念，即人口的集聚地；“市”为商业的概念，即商品交换的场所。而最早的“城市”（实际应为我们现在“城镇”）就是因商品交换集聚人群后而形成的。而城市的出现，也同商业的变革有着直接的渊源关系。最初城市中的工业集聚，也是为了使商品交换变得更为容易（可就地加工、就地销售）而形成的。在城市中直接加工销售相对于将已加工好的商品拿到城市中来交换而言，则正是一种随着工业城市的出现而产生的一种商业变革。城市包括城市规模、城市功能、城市布局和城市交通，而这几方面所发生的变化，都必然地会对城市的商业活动带来影响，促使其发生相应的变革。
城市经济学对城市作了不同等级的分类，如小城市、中等城市、大城市、国际化大都市、世界級城市等，对城市能级分类的一个标准是人口的规模。按城市综合经济实力和世界城市发展的历史来看，城市分为集市型、功能型、综合性、城市群等类别，这些类别也是城市发展的各个阶段。任何城市都必须经过集市型阶段。
类型 > 集市型城市

属于周边农民或手工业者商品交换的集聚地，商业主要由交易市场、商店和旅馆、饭店等配套服务设施所构成。处于集市型阶段的城市在中国稱集镇。
类型 > 功能型城市

通过自然资源的开发和优势产业的集中，开始发展其特有的工业产业，从而使城市具有特定的功能。不仅是商品的交换地，同时也是商品的生产地。但城市因产业分工而形成的功能单调，对其他地区和城市经济交流的依赖增强，商业开始由封闭型的城内交易为主转为开放性的城际交易为主，批发贸易业有了很大的发展。这类型城市主要有工业重镇、旅游城市（觀光城市）等；
类型 > 综合型城市

一些地理位置优越和产业优势明显的城市经济功能趋于综合型，金融、贸易、服务、文化、娱乐等功能得到发展，城市的集聚力日益增强，从而使城市的经济能级大大提高，成为区域性、全国性甚至国际性的经济中心和贸易中心（“大都市”）。商业由单纯的商品交易向综合服务发展，商业活动也扩展延伸为促进商品流通和满足交易需求的一切活动。这类城市在中国比较典型的有直辖市、省会城市。
类型 > 城市群

或城市帶、都市區、都市圈等。城市的经济功能已不再是在一个孤立的城市体现，而是由以一个中心城市为核心，同与其保持着密切经济联系的一系列中小城市共同组成的城市群来体现了。如美国東岸的“波士頓-華盛頓城市帶”、美国西岸的「舊金山-聖迭戈城市帶」和美國中西部的「芝加哥-匹茲堡城市帶」，日本的东京、大阪、名古屋三大城市圈，台灣的“台北-高雄市”城市带（台灣西部走廊），英国的“伦敦-利物浦”城市带等。放眼中國，广州所在的珠江三角洲地区、上海所在的长江三角洲地区和北京所在的環渤海地區实际上也正在形成三个经济关系密切的珠江三角洲城市群、长江三角洲城市群和環渤海城市群，其整体的经济功能已在日益凸现。
城市规划与布局

条目：城市规划
都市規劃係相關單位為了避免都市發展過快造成的都市問題而實施的計畫，如管線設計、道路網規劃、劃分區域等等。
都市規劃大致上可分為總體規劃及詳細規劃兩種。
城市规划与布局 > 總體規劃

總體規劃，是指都市性質、發展方向、規模大小等都市「總體佈局」的規劃，一般以20年為規劃期。總體規劃之下又可分為數期的「近期建設」，乃總體規劃的組成階段，規劃期一般為5年。
都市總體規劃最有名的例子，有如美國的華盛頓特區及巴西的巴西利亞。
城市规划与布局 > 詳細規劃

相較於總體規劃，詳細規劃是都市規劃更進一步的具體化。主要是針對都市近期建設規劃範圍內的建築物、公共事業（水電）、公園綠地等細部設施作具體的佈置。
外部影響

已知現在城市會形成微氣候，這是因為有大塊會吸熱的表面，在陽光照射時溫度會升高，而且有許多雨水會進下水道中，而不是變成地下水的一部份。
垃圾和污水是城市二個主要的問題，而各種形式燃燒造成的空氣污染也是城市的問題之一，燃燒來源包括壁爐、燒木頭或是煤的爐灶或是、其他加熱系統以及內燃機（像汽機車的引擎）。城市對其他地區的影響可以用城市生態足跡來表示。其他負面影響包括傳染性疾病、犯罪、交通流量高以及通勤時間長。在城市中人和人的互動比在鄉村複雜，因此更容易造成傳染性疾病的發生，不過像疫苗接種、水過濾系統等也對健康有幫助。犯罪也是城市的一個重要問題，已有研究指出城市中的犯罪率較高，被逮捕受罰的機率也比較低。以竊盜而言，城市人口的高度集中也造成有更多高價、值得偷竊的物品出現。城市交通流量大，也使得在市區行駛汽車和機車變的不一定便利，可能是因為交通堵塞造成路程時間長，而停車也是一大問題。
城市也有正面的外部影響，實體距離上的接近有助於知識溢出（英语：），有助於個人和企業交換資訊，產生新的概念。厚實的勞動市場也讓企業和個人有更好的技能匹配。人口密度高也有助於分享基礎設施及生產設施，不過若人口密度過高時，擁擠和等待的時間會帶來其他的負面影響。
城市的另一個正面外部影響是因為不同背景的人在城市聚在一起，創造了多様化的社會機會。較大的城市有更廣泛的社會關注及活動，因此不同背景的人都可以找到有興趣，想要參與的內容。
相關術語

| --- | --- |
 居民点  城市（城镇）  市  镇  行政区划  城市文化:  城市化  都市衰退  城市群  城镇体系  卫星城（卫星城镇）  首位都市：一個規模比同區域其他城市要大很多的城市
城市规划
| --- | --- |
 城镇体系规划  城市规划  城市设计  城市总体规划纲要  城市规划区  城市建成区  开发区  旧城改建:  城市基础设施  城市总体规划  分区规划  近期建设规划  城市详细规划  控制性详细规划  修建性详细规划  城市规划管理
城市规划编制
| --- | --- |
 城市发展战略  城市职能  城市性质:  城市规模  城市发展方向  城市发展目标
城市规划管理
| --- | --- |
 城市规划法规  规划审批程序  城市规划用地管理  选址意见书  建设用地规划许可证  城市规划建设管理  建设工程规划许可证  建筑面积密度（建蔽率）  容积率:  建筑密度  道路红线  建筑红线  人口毛密度  人口净密度  建筑间距  日照標準  城市道路面积率  绿地率
参考资料

↑  . : 169.
↑   (PDF).   [2013-11-28]. （原始内容 (PDF)存档于2014-10-31）.
↑  关于统计上划分城乡的暂行规定．http://www.stats.gov.cn/tjbz/t20061018_402369828.htm （页面存档备份，存于） 中华人民共和国国家统计局网站
↑  .   [2020-09-08]. （原始内容存档于2021-01-01）.
↑  . Национальный правовой Интернет-портал Республики Беларусь.   [2010-06-03]. （原始内容存档于2021-03-22）.
↑  . Aklung.org.   [2009-02-07]. （原始内容存档于2009-02-11）.
↑  . Newsminer.com. 2008-08-20  [2009-02-07]. [永久]
↑   (PDF).   [2010-05-16]. （原始内容存档 (PDF)于2014-05-01）.
↑  Borowiecki, Karol J. . Papers in Regional Science, forthcoming. 2013  [2013-11-29]. （原始内容存档于2021-01-10）.
|  论 编聚落类型 |
| --- | --- |
大都市帶 > 都市圈 > 城市（小区、社区、街道） > 鄉鎮 > 集镇（社区） > 村镇 > 村庄（村、小村庄、自然村落、冲、寨、岙）
|   |
| --- | --- |
国际:  FAST 
各地:  西班牙  法国  BnF data  德国  以色列  拉脱维亚  日本  捷克  韩国 
学术:  AAT 
其他:  瑞士历史词典 
2012年各國城市化程度
陸駿光

| 陸駿光 |
| --- | --- |
《am730》專訪
男演员
罗马拼音: Luk Chun Kwong
英文名: Alan Luk
昵称: 嗱喳、港版半澤直樹、陸uncle
国籍:  加拿大
出生:  (1978-02-09) 1978年2月9日（46歲）  英屬香港
语言: 粵語、英語、國語
教育程度: 大專
母校: 德貞小學 香港演藝學院
配偶: 茵茵（2015年结婚）
活跃年代: 2002年至今
陸駿光（英語：，1978年2月9日—），香港男演員，香港演藝學院畢業，曾為香港無綫電視及香港電視網絡旗下藝人。
背景

陸駿光畢業於香港演藝學院，2002年加入無綫電視開始拍攝電視劇，於2012年轉到香港電視網絡工作，至2015年4月約滿，期間拍攝《導火新聞線》、《大眾情性》、《驚異世紀》等劇集而廣為人知。因其樣貌與日本電視劇《半澤直樹》男主角堺雅人相似，因有港版半澤直樹之稱號，而其本人亦曾於2013年10月反對香港政府不發牌予香港電視集會中，飾演半澤直樹一角。2018年首次於ViuTV拍劇。
2019年，陸駿光近年多了拍港台的劇集，上一套是《火速救兵》，之前拍《獅子山下》的《黑哥》更去了台南參展。陸駿光拍電影《G殺》飾演名校教師，又跟女學生有枱底交易，角色破格。 
2020年8月，陸駿光憑2019年港台單元劇《星星的孩子：魚蛋》奪得「2020 New York Festivals TV & Film Awards紐約電影電視節」演員銅獎。入行近20年首度奪得演員獎項。
2022年，陸駿光主演了第6屆首部劇情電影計劃專業組得獎電影《流水落花》，為他首次擔演電影男主角。
個人生活

陸駿光曾與前無綫藝員李穎芝交往，後於2011年分手。現已與圈外女文員茵茵（Sherraina）於2015年7月成婚。陸駿光有二兄一姊，曾就讀德貞小學（1991年上午校畢業），出身於中醫世家。在校時曾在小五年級留級一年。及後於升中後為校內排球隊成員。他當時入讀過兩所香港中學，中二時亦曾留級一年。