stanford-oval/wikipedia huggingface dataset:
釜山廣域市長
歷任市長 > 慶尚南道釜山府尹

釜山廣域市廳以梁聖奉為首任官方釜山府尹，但自韓國獨立至1946年的時期實際已有四人擔任此職。
| 任次> 政務官員委任時期（1945年－1949年） | 姓名> 政務官員委任時期（1945年－1949年） | 在任時間> 政務官員委任時期（1945年－1949年） | 在任時間> 政務官員委任時期（1945年－1949年） | 黨籍> 政務官員委任時期（1945年－1949年） | 備註> 政務官員委任時期（1945年－1949年） |
| --- | --- | --- | --- | --- | --- |
| 1 | 富山修 | 1945年8月16日 | 1945年9月15日 | 無黨籍 | 日本人，日治時期末任府尹，韓國獨立後短暫繼續任職。 |
| 代理 | 梁聖奉 양성봉 | 1945年9月16日 | 1945年10月25日 | 無黨籍 | 釜山府總務科長代理。 |
| 2 | 約翰·P·凱利 John. P. Kelly | 1945年10月26日 | 1946年1月23日 | 無黨籍 | 美軍陸軍少校，9月16日任命，10月26日赴釜山到職。 |
| 3 | 艾伯特·E·布朗（英语：） Albert E. Brown | 1946年1月23日 | 1947年1月25日 | 無黨籍 | 美軍陸軍上校。 |
| 4 | 梁聖奉 양성봉 | 1946年1月24日 | 1948年11月6日 | 無黨籍 |  |
| 5 | 鄭鐘哲 정종철 | 1948年11月7日 | 1949年8月14日 | 無黨籍 |  |
歷任市長 > 慶尚南道釜山市長

| 任次> 政務官員委任時期（1949年－1952年） | 姓名> 政務官員委任時期（1949年－1952年） | 在任時間> 政務官員委任時期（1949年－1952年） | 在任時間> 政務官員委任時期（1949年－1952年） | 黨籍> 政務官員委任時期（1949年－1952年） | 備註> 政務官員委任時期（1949年－1952年） |
| --- | --- | --- | --- | --- | --- |
| 1 | 鄭鐘哲 정종철 | 1949年8月15日 | 1950年4月20日 | 無黨籍 |  |
| 2 | 金柱學 김주학 | 1950年4月21日 | 1952年5月7日 | 無黨籍 |  |
市議會間接選舉時期（1952年－1959年）
| 3 | 金柱學 김주학 | 1952年5月8日 | 1953年12月16日 | 無黨籍 |  |
| 4 | 金柱學 김주학 | 1953年12月17日 | 1954年7月22日 | 無黨籍 |  |
|  |  |  |  | 無黨籍 |  |
| 5 | 崔丙奎 최병규 | 1954年7月23日 | 1955年2月23日 | 無黨籍 |  |
| 6 | 裴上甲 배상갑 | 1955年2月24日 | 1959年3月18日 |  |  |
政務官員委任時期（1959年－1960年）
| 7 | 裴上甲 배상갑 | 1959年3月19日 | 1960年4月25日 | 無黨籍 |  |
| 8 | 李瑾鎔 이근용 | 1960年5月16日 | 1960年12月26日 | 無黨籍 |  |
第二共和國民選時期（1960年－1961年）
| 9 | 金鐘圭 김종규 | 1960年12月27日 | 1961年5月24日 | 民主黨 |  |
政務官員委任時期（1961年－1962年）
| 10 | 卞在甲 변재갑 | 1961年5月25日 | 1962年4月20日 | 無黨籍 | 恢復委任政務官員。 |
| 11 | 金玄玉（朝鲜语：） 김현옥 | 1962年4月21日 | 1962年12月31日 | 無黨籍 |  |
歷任市長 > （政府直轄）釜山市長

| 任次> 政務官員委任時期（1963年－1981年） | 姓名> 政務官員委任時期（1963年－1981年） | 在任時間> 政務官員委任時期（1963年－1981年） | 在任時間> 政務官員委任時期（1963年－1981年） | 黨籍> 政務官員委任時期（1963年－1981年） | 備註> 政務官員委任時期（1963年－1981年） |
| --- | --- | --- | --- | --- | --- |
| 1 | 金玄玉（朝鲜语：） 김현옥 | 1963年1月1日 | 1966年3月30日 | 無黨籍 |  |
| 2 | 金大萬 김대만 | 1966年3月31日 | 1969年4月26日 | 無黨籍 |  |
| 3 | 金德燁 김덕엽 | 1969年4月28日 | 1970年4月15日 | 無黨籍 |  |
| 4 | 崔杜烈（朝鲜语：） 최두열 | 1970年4月16日 | 1971年6月11日 | 無黨籍 |  |
| 5 | 朴英秀（朝鲜语：） 박영수 | 1971年6月12日 | 1977年7月6日 | 無黨籍 |  |
| 6 | 崔錫元 최석원 | 1977年7月7日 | 1980年1月16日 | 無黨籍 |  |
| 7 | 孫在植（朝鲜语：） 손재식 | 1980年1月17日 | 1981年4月3日 | 無黨籍 |  |
歷任市長 > 釜山直轄市長

| 任次> 政務官員委任時期（1981年－1994年） | 姓名> 政務官員委任時期（1981年－1994年） | 在任時間> 政務官員委任時期（1981年－1994年） | 在任時間> 政務官員委任時期（1981年－1994年） | 黨籍> 政務官員委任時期（1981年－1994年） | 備註> 政務官員委任時期（1981年－1994年） |
| --- | --- | --- | --- | --- | --- |
| 7 | 孫在植（朝鲜语：） 손재식 | 1981年4月4日 | 1981年4月7日 | 無黨籍 |  |
| 8 | 金武然（朝鲜语：） 김무연 | 1981年4月8日 | 1982年5月24日 | 無黨籍 |  |
| 9 | 崔鍾鎬（朝鲜语：） 최종호 | 1982年5月25日 | 1985年2月21日 | 無黨籍 |  |
| 10 | 鄭埰鎮（朝鲜语：） 정채진 | 1985年2月22日 | 1986年8月28日 | 無黨籍 |  |
| 11 | 金周浩（朝鲜语：） 김주호 | 1986年8月29日 | 1987年5月18日 | 無黨籍 |  |
| 12 | 姜泰弘 강태홍 | 1987年5月19日 | 1988年5月18日 | 無黨籍 |  |
| 13 | 安相英（朝鲜语：） 안상영 | 1988年5月19日 | 1990年12月27日 | 無黨籍 |  |
| 14 | 金英煥 김영환 | 1990年12月28日 | 1992年12月15日 | 無黨籍 |  |
| 15 | 朴富贊 박부찬 | 1992年12月16日 | 1993年3月3日 | 無黨籍 |  |
| 16 | 鄭文和（朝鲜语：） 정문화 | 1993年3月4日 | 1994年9月23日 | 無黨籍 |  |
| 17 | 金杞載（朝鲜语：） 김기재 | 1994年9月24日 | 1994年12月31日 | 無黨籍 |  |
歷任市長 > 釜山廣域市長

| 任次> 政務官員委任時期（1995年初） | 姓名> 政務官員委任時期（1995年初） | 在任時間> 政務官員委任時期（1995年初） | 在任時間> 政務官員委任時期（1995年初） | 黨籍> 政務官員委任時期（1995年初） | 備註> 政務官員委任時期（1995年初） |
| --- | --- | --- | --- | --- | --- |
| 17 | 金杞載（朝鲜语：） 김기재 | 1995年1月1日 | 1995年6月30日 | 無黨籍 | 升格廣域市後留任，至地方選舉選出民選市長後離職。 |
民選時期（1995年至今）
| 18 | 文正秀（朝鲜语：） 문정수 | 1995年7月1日 | 1998年6月30日 | 民主自由黨 （1995）新韓國黨 （1995－1997）大國家黨 （1997－1998） |  |
| 19 | 安相英（朝鲜语：） 안상영 | 1998年7月1日 | 2002年6月30日 | 大國家黨 |  |
| 20 | 安相英（朝鲜语：） 안상영 | 2002年7月1日 | 2004年2月4日 | 大國家黨 | 2003年10月25日起因涉嫌受賄被停職，2004年2月4日自殺身亡。 |
| 代理 | 吳巨敦 오거돈 | 2003年10月25日 | 2004年5月13日 | 無黨籍 | 行政第一副市長代理。 |
| 代理 | 安準泰（朝鲜语：） 안준태 | 2004年5月14日 | 2004年6月5日 | 無黨籍 | 企劃管理室長代理。 |
| 21 | 許南植（朝鲜语：） 허남식 | 2004年6月6日 | 2006年6月30日 | 大國家黨 （2004－2012）新世界黨 （2012－2014） |  |
| 22 | 許南植（朝鲜语：） 허남식 | 2006年7月1日 | 2010年6月30日 | 大國家黨 （2004－2012）新世界黨 （2012－2014） |  |
| 23 | 許南植（朝鲜语：） 허남식 | 2010年7月1日 | 2014年6月30日 | 大國家黨 （2004－2012）新世界黨 （2012－2014） | 歷任最長任期市長。 |
| 24 | 徐秉洙 서병수 | 2014年7月1日 | 2018年6月30日 | 新世界黨 （2014－2017）自由韓國黨 （2017－2018） |  |
| 25 | 吳巨敦 오거돈 | 2018年7月1日 | 2020年4月22日 | 共同民主黨 | 首位民選自由派市長，2020年4月22日因性醜聞辭職。 |
| 代理 | 邊城完（朝鲜语：） 변성완 | 2020年4月23日 | 2021年1月26日 | 無黨籍 | 行政副市長代理，2021年1月辭職參選市長。 |
| 代理 | 金善照（朝鲜语：） 김선조 | 2021年1月26日 | 2021年1月28日 | 無黨籍 | 企劃調整室長代理。 |
| 代理 | 李炳振（朝鲜语：） 이병진 | 2021年1月29日 | 2021年4月7日 | 無黨籍 | 行政副市長代理。 |
| 26 | 朴亨埈 박형준 | 2021年4月8日 | 2022年6月30日 | 國民力量 |  |
| 27 | 朴亨埈 박형준 | 2022年7月1日 | 現任 | 國民力量 |  |
相關條目

2018年大韓民國地方選舉
參考資料

↑  . law.go.kr. 2019-12-15  [2021-04-11]. （原始内容存档于2021-04-11） （韩语）.
外部連結

역대 부산광역시장 （页面存档备份，存于）
|  论 编釜山廣域市長 |
| --- | --- |
慶尚南道 釜山府尹:  梁聖奉  鄭鐘哲 
慶尚南道 釜山市長:  鄭鐘哲  金柱學  孫永壽  崔丙奎  裴上甲  李瑾鎔（朝鲜语：）  金鐘圭  卞在甲  金玄玉（朝鲜语：） 
（政府直轄） 釜山市長:  金玄玉（朝鲜语：）  金大萬  金德燁  崔杜烈（朝鲜语：）  朴英秀（朝鲜语：）  崔錫元  孫在植（朝鲜语：） 
釜山直轄市長:  孫在植（朝鲜语：）  金武然（朝鲜语：）  崔鍾鎬（朝鲜语：）  鄭埰鎮（朝鲜语：）  金周浩（朝鲜语：）  姜泰弘  安相英（朝鲜语：）  金英煥  朴富贊  鄭文和（朝鲜语：）  金杞載（朝鲜语：） 
釜山廣域市長:  金杞載（朝鲜语：）  文正秀（朝鲜语：）  安相英（朝鲜语：）  許南植（朝鲜语：）  徐秉洙  吳巨敦  朴亨埈 
|  论 编大韩民国一級行政區首長 |
| --- | --- | --- |
| 特別市長 | 首爾 吳世勳 |  |
| 廣域市長 | 釜山 朴亨埈 · 仁川 劉正福 · 大邱 洪準杓 · 光州 姜琪正 · 大田 李莊雨 · 蔚山 金斗謙 |  |
| 特別自治市長 | 世宗 崔旼鎬 |  |
| 道知事 | 京畿 金東兗 · 忠北 金榮煥 · 忠南 金泰欽 · 全南 金瑛錄 · 慶北 李喆雨 · 慶南 朴完洙 |  |
| 特別自治道知事 | 江原 金镇台 · 全北 金寬永 · 濟州 吳怜勳 |  |
| 以北五道知事 | 咸北（朝鲜语：） 李薰 · 咸南（朝鲜语：） 孫陽迎 · 平北（朝鲜语：） 梁宗光 · 平南（朝鲜语：） 趙明哲 · 黃海（朝鲜语：） 奇德泳 |  |
巴扎利托韋

50°55′35″N 26°14′23″E﻿ / ﻿50.92639°N 26.23972°E﻿ / 50.92639; 26.23972
巴扎利托韋（烏克蘭語：），是烏克蘭西北部的村莊，隸屬里夫內州的里夫內區。該村面積0.18平方公里，海拔高度184米，2001年人口494，人口密度每平方公里2,744.4人。
參考資料

Михайлишин О. Взірцеве селище Янова Долина як новий тип робітничого поселення на Волині у 30-х роках ХХ ст. // Вісник Львівського національного аграрного університету. Збірник наукових праць, 2009[永久]
Janowa Dolina // Strony o Wołyniu （页面存档备份，存于） （波兰語）
У селі Базальтове знаходять агати й аметисти // Природа України, 26.10.2008 （页面存档备份，存于）
Базальтове // Сайт «Подоррожі А. і Б.» （页面存档备份，存于）
快乐的大脚2

| 快樂腳2  |
| --- | --- |
電影海報
基本资料
导演: 乔治·米勒
监制: 乔治·米勒 比爾·米勒 道格·米切爾
编剧: 乔治·米勒 蓋瑞·伊克 Warren Coleman 保羅·利文斯頓
主演: 伊利亞·伍德 羅賓·威廉斯 E·G·戴利 索菲婭·薇格拉 粉红佳人 布萊德·彼特 麥特·戴蒙 雨果·威明
配乐: 約翰·包威爾
摄影: David Dulac David Peers
: Christian Gazal
制片商: Village Roadshow Pictures
片长: 99分钟
产地: 澳大利亚 美国
语言: 英语
上映及发行
上映日期: 2011年11月18日（美國） 2011年11月25日（台灣） 2011年12月15日（澳大利亞） 2011年12月22日（香港） 2012年2月21日（中國）
发行商: 華納兄弟
预算: 1.35亿美元
票房: 1.59億美元
前作与续作
前作: 《快樂腳》
各地片名
中国大陆: 
香港: 
臺灣: 
新加坡: 
《快乐的大脚2》（英語：）是一部2011年澳美合製的電腦动画點唱機歌舞喜剧电影，2006年電影《快樂腳》的续集，依然由乔治·米勒导演。美国于2011年11月18日上映，中国大陆于2012年2月21日上映。
剧情

故事承接第一部，皇帝企鵝曼波与葛莉亞的儿子艾瑞克出生了。而艾瑞克对歌舞卻没有感覺，不知道為何要唱歌跳舞，因此感到自卑，最後偕同朋友小波和艾迪克斯离家出走。曼波發現兒子失蹤，趕忙離家找尋出走的孩子們。
在南極海中，兩隻哥倆好的磷蝦：蝦大仙和蝦小仙，在一番鬥嘴扭打之後，意外滾出了磷蝦群外，發現原本身處的磷蝦世界是鯨魚的食物，磷蝦活得無覺無感，極為卑微。受到衝擊的蝦大仙決定要離開磷蝦群，誇下海口要成為食物鏈最頂層的掠食者，向來附和兄弟的蝦小仙也就跟著離開蝦群。
在曼波離家後，一股神秘的力量侵入皇帝企鹅王国，造成地層下陷，皇帝企鵝被困在下陷的冰層中，無法外出捕魚。於是離開家鄉而逃過一劫的曼波、艾瑞克、小波、艾迪克斯等等成了拯救皇帝企鵝王國唯一的希望。
配音員

| 配音> 英語 | 配音> 國語 | 配音> 粵語 | 角色 |
| --- | --- | --- | --- |
| 伊莱贾·伍德 | 何志威 | 張繼聰/里奥·索布雷拉 | 曼波（Mumble） |
| 羅賓·威廉斯 | 曹冀魯 | 里奥·索布雷拉 | 拉蒙（Ramon） |
| 羅賓·威廉斯 | 曹冀魯 | 里奥·索布雷拉 | 愛拉斯（Lovelace） |
| 汉克·阿扎里亚 | 陳幼文 | 里奥·索布雷拉 | 飛哥（The Mighty Sven） |
| 粉红佳人 | 楊凱凱 | 莱昂纳多·索布雷拉·德索萨 | 葛莉亞（Gloria） |
| 布萊德·彼特 | 林谷珍 | 莱昂纳多·索布雷拉·德索萨 | 蝦大仙（Will the Krill），磷蝦 |
| 马特·戴蒙 |  | 莱昂纳多·索布雷拉·德索萨 | 蝦小仙（Bill the Krill），磷蝦 |
| 索菲娅·维加拉 |  | 莱昂纳多·索布雷拉·德索萨 | 卡門（Carmen） |
| 愛娃·安奇斯（英语：） 伊麗莎白·戴莉（英语：）（唱） | 傅其慧 |  | 艾瑞克（Erik），曼波和葛利亞的兒子 |
| 美比·坎普巴爾 伊麗莎白·戴莉（英语：）（唱） | 莊子欣 |  | 小波（Bodicea "Bo"），艾瑞克的朋友，母親是薇拉老師。 |
| 小本傑明·弗洛斯（英语：） | 許淑嬪 |  | 艾迪克斯（Atticus），艾瑞克的朋友。 |
| 理查德·卡特爾（英语：） |  |  | 布萊恩（Bryan the Beach Master），海象集團的老大。 |
| 瑪格達·蘇班斯基 | 杜素真 |  | 薇拉老師（Miss Viola） |
| 雨果·韋榮 |  |  | 諾哈長老（Noah the Elder） |
| 凡夫俗子 |  |  | 賽蒙（Seymour） |
| 安東尼·拉帕里亞 | 康殿宏 |  | 贼鸥老大（Alpha Skua） |
| 柴·史洛普 奧斯卡·彼爾德 | 劉如蘋 謝佼娟 |  | 海象布萊恩的一對幼子（Weaner Pups） |
| 卡洛斯·阿拉茲拉奎 |  |  | 內斯特（Nestor） |
| 強尼·A·山切斯（英语：） |  |  | 隆巴多（Lombardo） |
| 隆巴多·博爾（英语：） |  |  | 勞爾（Raul） |
| 傑弗瑞·格拉西亞（英语：） |  |  | 林那多（Rinaldo） |
| 丹尼·曼（英语：） |  |  | （Brokebeak） |
| 李·佩里（英语：） |  |  | 法蘭西斯卡（Francesco） |
| 李·佩里（英语：） | 孫德成 |  | 維恩（Wayne the Challenger） |
| 李·佩里（英语：） |  |  | （Eggbert and Leopard Seal） |

这部电影将有中文版的fandub版本，将于2020年中上映。由TCB电视演播室公益组织。
在此版本中，歌曲被配音和字幕。 
电影中的所有角色都由同一个配音演员配音。
电影《光之桥》（Bridge of Light）中最令人期待的歌曲经过特别翻译P!nk，以纪念第一个配音演员去世后为歌唱格洛丽亚角色的北美歌手。
普通话版本之后，该电影将提供另一种塞尔维亚语版本的翻译版本。
在影片首映前发布的视频中，它将详细显示配音过程的细节。
电影《快乐大脚怪2》 fandub通过TMB技术在立体声和5.1频道中混合使用。
此fandub中使用的工具将在完整的“Making of”中进行介绍。
评价

烂番茄新鲜度45%，在metacritic获得50分，好坏参半。好评有：“片中的一切都是那么美好”，“数量急剧增多的企鹅歌舞场景，在3D技术的帮助下非但没有过载，反而举重若轻”，“通过诸多精妙而细微的渠道，影片传递出相比于前作更加丰富与复杂的情节信息”。
坏评有：“虽然故事堪称丰满，但影片缺少能够让人斟酌品味的创新”，“角色的性格和形象塑造缺乏魅力，再加上笑料的贫瘠，常常给人一种万物冻僵的呆滞感”。
票房

美国首周末收2202万美圆，次于《暮光之城4：破曉》的1.395亿位居第二。次周末收1340万名列第三位，累计仅4377万。
参考资料

↑  .   [2012年5月31日]. （原始内容存档于2011年10月26日）.
↑  "Happy Feet Two" （页面存档备份，存于）. Box Office Mojo. Retrieved March 1, 2012.
↑  "Hollywood Reporter, Dec. 7, 2009". The Hollywood Reporter. Retrieved 2010-11-19.
↑  . 搜狐娱乐. 2012年2月10日. （原始内容存档于2017年8月23日）.
↑  新浪娱乐. . 2011年11月21日  [2011-11-21]. （原始内容存档于2011-11-26）.
金文泰体育场

| 金文泰体育场 Clementi Stadium |
| --- | --- |

zh
地址: 西海岸径10号
位置: 新加坡的金文泰新镇
坐標: 1°18′35″N 103°45′47″E﻿ / ﻿1.309845°N 103.763015°E﻿ / 1.309845; 103.763015
公共交通: 巴士，地铁
停車: 有
所有者: 新加坡体育理事会
營運者: 新加坡体育理事会
座位数: 4000
表面: 草
啟用: 1983年2月21日 (1983-02-21)
客戶
内政联足球俱乐部（2009年）  丹戎巴葛联足球俱乐部（2011年）  淡濱尼流浪足球會（2012-2014年）
金文泰体育场（英語：），位于新加坡金文泰规划区内，于1983年开放。球场可以容纳4000名观众。金文泰体育场育场曾经是新加坡职业足球联赛场地之一。体育场主要做为球队的临时主场。2009年内政联足球俱乐部因为主场正在翻新而使用了该体育场。在这之后丹戎巴葛联足球俱乐部以及淡濱尼流浪足球會分别于2011年与2012至2014年期间使用金文泰体育场作为球队的临时主场。新加坡革新黨也经常使用该体育场举办大选群众大会。
体育场设施

体育场拥有一个可供新加坡职业足球联赛举办赛事的草皮。体育场也有也有一条8赛道的400米塑胶跑步道。
政治活动

2011年4月29日与2015年9月5日，新加坡革新黨将金文泰体育场分别作为2011年新加坡大選和2015年新加坡大選群众大会的场地，其中前者活动的出席人数大约为3000人。
体育场附近

体育场附近有的主要设施包括金文泰游泳池。附近的重要交通设施包括金文泰巴士转换站以及金文泰地铁站。步行约10分钟就可以抵达体育场。
金文泰体育场周围地图
C♯

此條目介紹的是微软開發的程序设计语言。关于音樂上的音名，请见「」。
| --- | --- |

: 结构化、面向对象、泛型
语言家族: C
設計者: 微软
實作者: 微软
: 2000年，​25年前​（2000）
当前版本: 13.0（2024年11月12日；穩定版本）  
操作系统: Windows、Linux、Mac OS X 、 Android
許可證:  Roslyn compiler: MIT License  .NET Core: MIT License 
文件扩展名: .cs, .csx
網站:  
主要實作產品
.NET、.NET框架、Mono、DotGNU
衍生副語言
Cω、Spec#（英语：）、Polyphonic C#（英语：）
啟發語言
C++、Java、Eiffel、Modula-3、Object Pascal
影響語言
Clojure、D語言、F#、Java 5、Nemerle、Vala
C#是微软推出的一种基于.NET框架和后来的.NET的、面向对象的高级编程语言。C#衍伸自C和C++，继承了C和C++的强大功能，同时去掉了一些复杂特性，使其成为C语言家族中高效强大的编程语言。C#以.NET框架类库作为基础，拥有类似Visual Basic的快速开发能力。C#由安德斯·海尔斯伯格主持开发，微软在2000年发布了这种语言，希望借助这种语言来取代Java。C#已经成为Ecma国际和国际标准组织的标准规范。
设计目标

ECMA标准列出的C#设计目标：
C#旨在设计成为一种「简单、现代、通用」，以及面向对象的程序设计语言
此种语言的实现，应提供对于以下软件工程要素的支持：强类型檢查、数组维度检查、未初始化的变量引用检测、自动垃圾收集（Garbage Collection，指一种記憶體自動释放技术）。软件必须做到強大、持久，并具有较强生产力。
此种语言为在环境中的开发提供适用的组件开发应用。
为使程序员容易迁移到这种语言，源代码的可移植性十分重要，尤其是对于那些已熟悉C和C++的程序员而言。
对国际化的支持非常重要。
C#适合为独立和嵌入式的系统编写程序，从使用复杂操作系统的大型系统到特定应用的小型系统均适用。
歷史

原Borland公司的首席研发设计师安德斯·海爾斯伯格（Anders Hejlsberg）在微軟開發了Visual J++ 1.0，很快的Visual J++由1.1版本升級到6.0版。SUN公司认为Visual J++ 违反了Java开发平台的中立性，对微软提出了诉讼。2000年6月26日微软在奥兰多举行的“职业开发人员技术大会”（PDC 2000）上，發表新的语言C#。C#语言取代了Visual J++，語言本身深受Visual Basic、Java、C和C++ 的影響。
歷史 > 版本

| 版本 | 語言規格> ECMA | 語言規格> ISO/IEC | 語言規格> Microsoft | 日期 | > NET框架版本..NET框架版本 | Visual Studio的版本 |
| --- | --- | --- | --- | --- | --- | --- |
| C# 1.0 | 2002年12月（页面存档备份，存于） | 2003年4月（页面存档备份，存于） | 2002年1月（页面存档备份，存于） | 2002年1月 | .NET Framework 1.0 | Visual Studio .NET 2002 |
| C# 1.1 C# 1.2 | 2002年12月（页面存档备份，存于） | 2003年4月（页面存档备份，存于） | 2003年10月（页面存档备份，存于） | 2003年4月 | .NET Framework 1.1（英语：） | Visual Studio .NET 2003 |
| C# 2.0 | 2006年6月 | 2006年9月（页面存档备份，存于） | 2005年9月（页面存档备份，存于） | 2005年11月 | .NET Framework 2.0 | Visual Studio 2005 |
| C# 3.0 | 否 | 否 | 2007年8月（页面存档备份，存于） | 2007年11月 |  .NET Framework 2.0 (Except LINQ)  .NET Framework 3.0 (Except LINQ)  .NET Framework 3.5 | Visual Studio 2008 Visual Studio 2010 |
| C# 4.0 | 否 | 否 | 2010年4月 | 2010年4月 | .NET Framework 4 | Visual Studio 2010 |
| C# 5.0 | 2017年12月（页面存档备份，存于） | 2018年12月（页面存档备份，存于） | 2013年6月（页面存档备份，存于） | 2012年8月 | .NET Framework 4.5 | Visual Studio 2012 Visual Studio 2013 |
| C# 6.0 | 否 | 否 | 草案（页面存档备份，存于） | 2015年7月/2016-06-27 | .NET Framework 4.6/.NET Core 1.0 | Visual Studio 2015 |
| C# 7.0 | 否 | 否 | 建议草案 （页面存档备份，存于） | 2017年3月 | .NET Framework 4.6.2 | Visual Studio 2017 |
| C# 7.1 | 否 | 否 | 建议草案 （页面存档备份，存于） | 2017年8月/2016-08-14 | .NET Framework 4.7（英语：）/.NET Core 2.0 | Visual Studio 2017 version 15.3 |
| C# 7.2 | 否 | 否 | 建议草案 | 2017年11月 | .NET Framework 4.7.1 | Visual Studio 2017 version 15.5 |
| C# 7.3 | 否 | 否 | 建议草案 （页面存档备份，存于） | 2018年5月/2018-05-30/2018-12-04 | .NET Framework 4.7.2/.NET Core 2.1/.NET Core 2.2 | Visual Studio 2017 version 15.7 |
| C# 8 | 否 | 否 | 建议草案 （页面存档备份，存于） | 2019年9月/2019-09-23/2019-12-03 | .NET Framework 4.8/.NET Core 3.0/.NET Core 3.1 | Visual Studio 2019 version 16.3 |
| C# 9 | 否 | 否 | 建议草案 （页面存档备份，存于） | 2020年11月 | .NET 5 | Visual Studio 2019 version 16.8 |
| C# 10 | 否 | 否 | 建议草案 （页面存档备份，存于） | 2021年11月 | .NET 6 | Visual Studio 2022 version 17.0 |
| C# 11 | 否 | 否 | 建议草案 （页面存档备份，存于） | 2022年11月 | .NET 7 | Visual Studio 2022 version 17.4 |
| C# 12 | 否 | 否 | 建议草案 （页面存档备份，存于） | 2023年11月 | .NET 8 | Visual Studio 2022 version 17.8 |
| C# 13 | 否 | 否 | 建议草案 （页面存档备份，存于） | 2024年9月 | .NET 9 | Visual Studio 2022 version 17.12 |
語言特性

相對於C和C++，這個語言在許多方面進行了限制和增強：
（Pointer）只能用於不安全模式之中。大多數對象訪問透過安全的引用实现，以避免無效的調用，並且有許多用於，只能用於調用值类型，以及受垃圾收集控制的托管對象。
對象不能被顯式釋放，代替為當不存在被引用時透過垃圾回收器回收。
只允許單一繼承（single inheritance），但是一個類可以實現多個接口（interfaces）。
C#比C++更加類型安全。的安全轉換是隱含轉換，例如由短整型轉換為長整型和從衍生類轉換為基本類。而接口同整型，及枚舉型同整型不允許隱含轉換，非空（透過引用相似對象）同用戶定義類型的隱含轉換字段被顯式的確定，不同於C++的複製構造函數。
数组語法不同（"int[] a = new int[5]"而不是"int a[5]"）。
枚舉位於其所在的命名空間中。
C#中沒有模版（Template），但是在C# 2.0中引入了泛型（Generic programming），並且支持一些C++模版不支持的特性。比如泛型參數中的類型約束。另一方面，表達式不能像C++模版中被用於類型參數。
屬性支持，使用類似訪問成員的方式調用。
完整的反射支持。
C# 2.0的特性

针对于.NET SDK 2.0（相对应于ECMA-334标准第三版），C# 的新特性有：
C# 2.0的特性 > 部分类

分部類別将類別的实现分在多个文件中。该概念于C# 中首次出现，除了能将一个類別的成员分开存放，还使ASP.NET中的代码后置得以实现。代码后置实现了HTML代码和后台交互代码的分离。
file1.cs:
public partial class MyClass1
{
    public void MyMethod1()
    {
        // implementation
    }
}
file2.cs:
public partial class MyClass1
{
    public void MyMethod2()
    {
        // implementation
    }
}
分部類別这个特性允许将一个類別的编写工作分配给多个人，一人写一个文件，便于版本控制。它又可以隔离自动生成的代码和人工书写的代码，例如设计窗体应用程序时。
C# 2.0的特性 > 泛型

泛型，或参数化类型，是被C#支持的.NET 2.0特性。不同于C++模版，.NET参数化类型是在运行时被实例化，而不是编译时，因此它可以跨语言，而C++模版却不行。C#泛型类在编译时，先生成中间代码IL，通用类型符号T只是一个占位符；在实例化类时，根据实际数据类型代替T并由即时编译器（JIT）生成本地代码，其中使用了实际的数据类型，等同于用实际类型写的普通的类。
它支持的一些特性并不被C++模版直接支持，比如约束泛型参数实现一个接口。另一方面，C# 不支持无类型的泛型参数。不像Java中的泛型，在CLI虚拟机中，.NET generics使用具化生成泛型参数，它允许优化和保存类型信息。
泛型类中，可以用where关键字对参数类型实现约束。例如：
class Node<T, V>
    where T : Stack, IComparable, new(), class
    where V : Stack, struct
{...}
上述表示T和V必须是Stack类或其派生类，T必须继承了IComparable接口、有无参构造函数、是引用类型；V必须是值类型。
泛型不仅能作用在类上，也可单独用在类的方法上，称为“泛型方法”。
泛型类的静态成员变量在相同封闭类间共享，不同的封闭类间不共享。
泛型类中的方法重载，参数类型T和V在运行时确定，不影响这个类通过编译。C#的泛型是在实例的方法被调用时检查重载是否产生混淆，而不是在泛型类本身编译时检查。特别地，当一般方法与泛型方法具有相同的签名时，会覆盖泛型方法。
C# 2.0的特性 > 静态類別

静态類別它不能被实例化，并且只能有静态成员。这同很多过程语言中的模块概念相类似。
C# 2.0的特性 > 迭代器

一种新形式的迭代器它提供了函数式编程中的generator，使用yield return
类似于Python中使用的yield
// Method that takes an iterable input (possibly an array)
// and returns all even numbers.
public static IEnumerable<int> GetEven(IEnumerable<int> numbers)
{
    foreach (int i in numbers)
    {
        if (i % 2 == 0) yield return i;
    }
}
注意事项：
foreach循环时考虑线程安全性，不要试图对被遍历的集合进行remove和add等操作
IEnumerable接口是LINQ特性的核心接口。只有实现了IEnumerable接口的集合，才能执行相关的LINQ操作，比如select,where等
C# 2.0的特性 > 匿名方法

匿名方法类似于函数式编程中的闭包。匿名方法是通过使用 delegate 关键字创建委托实例来声明的。例如：
delegate void NumberChanger(int n);
 
NumberChanger nc = delegate(int x)
{
    Console.WriteLine("Anonymous Method: {0}", x);
};



public void Foo(object parameter)
{
    // ...

    ThreadPool.QueueUserWorkItem(delegate
    {
        // anonymous delegates have full access to local variables of the enclosing method
        if(parameter == ...)
        { 
            // ... 
        }

        // ...
    });
}
C# 2.0的特性 > 委托的协变和逆变

委托签名的协变和逆变。
C# 2.0的特性 > 属性访问器可以被单独设置访问级别

例子：
string status = string.Empty;

public string Status
{
    get { return status; }             // anyone can get value of this property,
    protected set { status = value; }  // but only derived classes can change it
}
C# 2.0的特性 > 可空类型

可空类型（跟个问号，如int? i = null;）允许设置null给任何类类型。
int? i = null;
object o = i;
if(o == null)
    Console.WriteLine("Correct behaviour - runtime version from September 2005 or later");
else
    Console.WriteLine("Incorrect behaviour - pre-release runtime (from before September 2005)");
C# 2.0的特性 > ??運算子

（??）：如果左运算数表达式的值不为空值时回傳该值，如果为空值则返回右运算数表达式的值。
object nullObj = null; 
object obj = new Object(); 
return nullObj ?? obj; // returns obj
主要用作将一个可空类型赋值给不可空类型的简便语法
int? i = null;
int j = i ?? 0; // Unless i is null, initialize j to i. Else (if i is null), initialize j to 0.
C# 3.0的特性

C# 3.0发布于2007年10月17日，是.NET Framework 3.5的一部分，它的新特性灵感来自于函数式编程语言，如：Haskell和ML，并广泛地引入了Language Integrated Query（LINQ）模式到通用語言運行庫中e.
C# 3.0的特性 > Linq

语言集成查询（英語：，缩写：LINQ）：  上下文相关关键字"from, where, select"可用于查询SQL、XML、集合等。这些标识符在LINQ上下文中被作为关键字，但是它们的增加不会破坏原有的名为from、where或select的变量。
C# 3.0的特性 > 类型初始化器

Customer c = new Customer();
c.Name = "James";
可写作：
Customer c = new Customer() { Name = "James" };
C# 3.0的特性 > 集合初始化器

MyList list = new MyList();
list.Add(1);
list.Add(2);
可写作
MyList list = new MyList { 1, 2 };
假设MyList实现了System.Collections.IEnumerable且有一个Add方法method
C# 3.0的特性 > 匿名類型

var x = new { Name = "James" };
C# 3.0的特性 > 局部变量类型推断

局部变量类型推断：
var x = new Dictionary<string, List<float>>();
等同于
Dictionary<string, List<float>> x = new Dictionary<string, List<float>>();
它只是一个语法糖，这个特性被匿名类型声明时所需要
C# 3.0的特性 > Lambda表达式

Lambda表达式（無函式名稱的物件方法在程式語言中的表達語法）:
listOfFoo.Where(
    delegate(Foo x)
    {
        return x.Size > 10; 
    }
)
listOfFoo.Where(x => x.Size > 10);
编译器翻译Lambda表达式为强类型委托或强类型表达式树。
注意事项：
如果只有一个参数，可以省略括号()，例如 item=>{Console.WriteLine("只有一个参数{0}的Lambda表达式",item); };
如果只有一个返回值的语句，可以省略花括号{}、return关键字、分号，例如 item => {return item % 2 == 0;};改写成：item =>item %2 == 0;
Lambda表达式可以分配给Func，Action或Predicate委托。
C# 3.0的特性 > 自动化属性

编译器将自动生成私有变量和适当的getter（get访问器）和setter（set访问器），如：
public string Name
{
    get; 
    set; 
}
C# 3.0的特性 > 扩展方法

扩展方法能够使现有的类型添加方法，而无需创建新的派生类型、重新编译或以其它方式修改原始类型。
使用拓展方法，必须在一个非嵌套、非泛型的静态类中定义一个静态方法，方法第一个参数必须附加this关键字作为前缀，第一个参数不能有其它修饰符（如ref或者out），这个方法将被编译器添加到该this的类型中。
public static class IntExtensions
{
    public static void PrintPlusOne(this int x) 
    {
        Console.WriteLine(x + 1);
    }
}
 
int foo = 0;
foo.PrintPlusOne();
注意事项：
扩展方法只会增加编译器的工作，但不会影响程序运行性能（用继承的方式为一个类型增加特性反而会影响性能）
如果原来的类中有一个方法，跟扩展方法一样，那么扩展方法不会被调用，编译器也不会提示
C# 3.0的特性 > 分部方法

允许代码生成器生成方法声明作为扩展点，如果有人在另一个部分类实现了它才会被包含于原代码编译。
分部方法（Partial methods）必须定义在分部类（partial classes）中
定义分部方法需要用partial做修饰符
分部方法不一定总是有执行内容的，也就是说定义的方法可以一句操作语句都没有
分部方法返回值必须是void
分部方法可以是静态（static）方法
分部方法可以包含参数，参数可以包含以下修饰词：this,ref,params
分部方法必须是私有（private）方法
例子：
partial class C
{
    static partial void M(int i); // defining declaration
}
partial class C
{
    static partial void M(int i)
    {
        dosomething();
    }
}
C# 4.0的特性 > dynamic类型

C# 4.0新增dynamic关键字，提供動態編程（dynamic programming），把既有的靜態物件標記為動態物件，類似javascript, Python或Ruby。
dynamic关键字标记的实例被处理成一个特殊包装的object对象，取消了CLI的编译时类型检查，编译时被假定支持任何操作，但如果并不实际支持则运行时报错。
dynamic calc = GetCalculator();
int sum = calc.Add(10, 20);
C# 4.0的特性 > 具名參數與可選參數

public StreamReader OpenFile(string path, int bufferSize = 1024)
{ ... }
呼叫OpenFile時，順序可以完全顛倒：
OpenFile(bufferSize: 4096, path: "foo.txt");
C# 4.0的特性 > 與COM组件互動

在C#中打開一個Word文件：
static void Main(string[] args)
{
    Word.Application wordApplication = new Word.Application() { Visible = true };
    wordApplication.Documents.Open(@"C:\plant.docx", ReadOnly: true);
}
在C#中指定Excel的某一格文字：
excelObj.Cells[5, 5].Value = "This is sample text";
C# 4.0的特性 > 泛型的协变和逆变

C# 4.0支援协变和逆变，例如在泛型介面可以加上in、out。
public interface IComparer<in T>  
{  
    int Compare(T left, T right);  
}

public interface IEnumerable<out T> : IEnumerable
{
    IEnumerator<T> GetEnumerator();
}
C# 5.0的特性

C# Evolution Matrix
Async Feature （补充： async和await是一对语法糖，允许开发人员非常轻松的调用基于TASK的异步编程）async-await关键字并不会真的创建一个线程池任务，完成这个动作依赖于被调用方法中的函数。这一点在许多C#的中文教程中被忽略，导致许多学习的新手误以为await关键字会直接创建一个新的线程池任务。
Caller Information
C# 6.0的特性

唯讀 Auto 屬性
Auto 屬性初始設定式
使用靜態
Null - 條件運算子
字串插值
例外狀況篩選條件
nameof 運算式
Catch 和 Finally 區塊中的 Await
索引初始設定式
集合初始設定式的擴充方法
改進的多載解析
C# 6.0的特性 > 表达式主体（Expression-bodied）用于类的方法和只读属性

using System;

public class Person
{
   public Person(string firstName, string lastName)
   {
      fname = firstName;
      lname = lastName;
   }

   private string fname;
   private string lname;

   public override string ToString() => $"{fname} {lname}".Trim(); //返回值类型string
   public void DisplayName() => Console.WriteLine(ToString()); //返回值类型void
   public string Name => $"{fname} {lname}".Trim();//只读属性
}
C# 7.0的特性 > out 變數

能夠直接宣告一個變數在它要傳入的地方，當成一個 out 的引數
C# 7.0的特性 > 弃元

元组/对象的解构：
var tuple = (1, 2, 3, 4, 5);
(_, _, _, _, var fifth) = tuple;
使用 is/switch 的模式匹配：
var obj = CultureInfo.CurrentCulture.DateTimeFormat;
switch (obj)
{
case IFormatProvider fmt:
    Console.WriteLine($"{fmt} object");
    break;
case null:
    Console.Write("A null object reference");
    break;
case object _:
    Console.WriteLine("Some object type without format information");
    break;
}

if (obj is object _) { ... }
对具有 out 参数的方法的调用：
var point = new Point(10, 10);
// 只要 x, 不关心 y
point.GetCoordinates(out int x, out _);
作用域内独立使用场景：
void Test(Dto dto)
{
    _ = dto ?? throw new ArgumentNullException(nameof(dto));
}
C# 7.0的特性 > 表达式主体（Expression-bodied）用于类的属性、构造器、终结器、索引器

using System;
public class Location
{
   private string locationName;

   public Location(string name) => Name = name; //构造函数

   public string Name
   {
      get => locationName;   //get属性
      set => locationName = value;  //set属性
   }

   public override string ToString() => GetType().Name;

   ~Location() => Console.WriteLine($"The {ToString()} finalizer is executing."); //析构函数

   private string[] types = { "Baseball", "Basketball", "Football",
                              "Hockey", "Soccer", "Tennis",
                              "Volleyball" };

   public string this[int i] 
   {
      get => types[i];            //索引器
      set => types[i] = value;
   }
}
C# 7.1的特性

async``Main方法
default常值運算式
推斷的 tuple 項目名稱
C# 7.2的特性

具備實值型別的參考語意
無後置具名引數
數值常值中的前置底線
private protected 存取修飾詞
C# 8.0的特性

可空引用类型
await yield return可异步返回的迭代器
Index 索引类型和Range区间类型
允许在声明接口时为接口成员提供默认实现
递归的模式匹配
表达式形式的Switch关键字
在编译器可做类型推断的情况下，允许进一步省略类型声明
C# 9的特性 > 新的「Record」類型

记录类型， 是一种引用类型， 默认是不可变的。 记录类型的相等判断可以通过引用或者结构进行判断的。
优点：记录类型是轻量级的不可变类型，可以减少大量的代码， 可以按照结构和引用进行比较；
缺点：需要实例化大量的对象；
// 默认不可变的记录类型
public record Person(string Name, int Age);

// 可变记录类型
public record MutablePerson(string Name, int Age)
{
    public string Name { get; set; } = Name;
    public int Age { get; set; } = Age;
}
 
var person1 = new Person("Alice", 40);
var person2 = new Person("Alice", 40);
 
Console.WriteLine(person1 == person2); // True 结构相同
Console.WriteLine(person1.Equals(person2)); // True 结构相同
Console.WriteLine(ReferenceEquals(person1, person2)); // False, 引用不同
 
// 改变默认的记录！ --> 创建一个新的记录。
var person3 = person1 with { Age = 43 };
Console.WriteLine(person3 == person1); // False 结构不同
 
// 解构 (Destruct) 一个记录， 将记录的属性提取为本地变量
var (name, age) = person3;
 
var person4 = new MutablePerson("Alice", 40);
person4.Age = 43;
 
// 记录类型也可以被继承
public record Citizen(string Name, int Age, string Country) : Person(Name, Age);
var citizen = new Citizen("Alice", 40, "China");
Console.WriteLine(person1 == citizen); // False 类型不同；
C# 9的特性 > 「init」存取子

init存取子表示該屬性所屬類型僅能在建構函式(Constructor)中或是屬性初始化式子中賦予其值，如果嘗試在其他地方設定該屬性的值，在編譯時便會遭編譯器阻止。
範例如下：在這個範例中，建立了一個Student類型，並且屬性StudentName與StudentID只能在初始化時賦予其值。
public class Student
{
	public Student()
    {
	}
	
	public Student(string studentName,string studentID)
	{
		StudentName = studentName;
		StudentID = studentID;
	}
	
	public string StudentName { get; init; } = "Default Name";
	public string StudentID { get; init; } = "00000000";
}
如果在此時撰寫以下程式碼：
Student DemoStudent = new Student();
DemoStudent.StudentName = "Test Name";
編譯器便會無法編譯並且擲回錯誤。
而如果要建立學生名稱為「Test Name」，學生ID為「0001」的學生，則需要寫成：
Student DemoStudent = new Student() //物件初始化運算式
{
    StudentName = "Test Name";
    StudentID = "0001"
};
或是
Student DemoStudent = new Student("Test Name","0001"); //藉由類型的建構式初始化StudentName以及StudentID。