tomron87/hebrew-wikipedia-sentences-corpus huggingface dataset:
מלבד זאת ב-#C נוספו תכונות שבחלקן אומצו מוויז'ואל בייסיק כגון תכנות חזותי, תכנות מונחה אירועים, אתחול אוטומטי של משתנים, משתנה רב-תכליתי, מאפיינים, לולאת טווח ועוד.
במיוחד גדל הפער בין השפות בגרסאות החדשות של #C בהן נוספו הרחבות כמו תכנות פונקציונלי, מתודות-הרחבה (Extension methods) והרחבת LINQ.
פיתוח השפה היה ראשוני, ונטול עכבות היסטוריות כמו תאימות לאחור, שהקשתה על האבולוציה של ג'אווה.
ברור גם כי העובדה ש-#C פותחה אחרי ג'אווה איפשרה ל"מיקרוסופט" ללמוד מהחסרונות והיתרונות שלה וליישם את הלקחים בשפה החדשה.
אנשי "סאן" טענו כי "מיקרוסופט" גנבה לא מעט רעיונות משפת ג'אווה.
לטענתם, #C היא בעצם חיקוי לא מוצלח של ג'אווה שממנו הוסרו אמינות, יצרנות ואבטחה.
ב"מיקרוסופט" מתעקשים לעומת זאת כי השפה דומה יותר ל-++C מאשר לג'אווה.
ההבדל המהותי ביותר בין #C לג'אווה הוא מתודולוגי – #C היא שפה מונחית עצמים טהורה (Pure Object Oriented), ב-#C כל דבר הוא אובייקט, אפילו הטיפוסים הפשוטים (int, double, float, char ועוד) הם אובייקטים.
ג'אווה לעומת זאת, היא אומנם מונחית עצמים אולם היא לא שפה מונחית עצמים טהורה, הטיפוסים הפשוטים הם פרימיטיביים (כמו ב-C), והיא לא מבחינה בין מתודות וירטואליות למתודות לא וירטואליות ועוד.
תקן ECMA מפרט את יעדי הפיתוח של השפה:
הפשטה: השפה צריכה להיות פשוטה להבנה וכתיבה, דינאמית, גנרית, מודרנית ומונחית עצמים טהורה במידת האפשר.
הנדסה: השפה ויישומה צריכים לתמוך בעקרונות הנדסת תוכנה מתקדמים כמו בדיקת טיפוסיות, בדיקת חריגות גבול, מנגנון לאיתור שימוש במשתנים לא מאותחלים ואיסוף זבל.
פריסה: השפה צריכה לתמוך בפיתוח יישומים המתאימים להתקנה בסביבה מבוזרת – קרי, הפעלה בכל מערכת שבה מותקנים רכיבי זמן ריצה מתאימים.
ניידות: שימת דגש על ניידות הקוד כמו גם ניידות המתכנת, במיוחד הקלת המעבר לאלו שהתנסו בכתיבה בשפות C ו-++C.
בין-לאומיות: תמיכה בריבוי שפות כמו גם שפות שמיות (ימין לשמאל ושמאל לימין).
מודולריות: השפה צריכה להתאים למערכות שונות, ממערכות גדולות בעלות פונקציונליות מרובה דרך מחשב ביתי ועד למערכות משובצות מחשב ייעודיות קטנות.
ביצועיות: למרות היותה חסכונית במונחים של צריכת זיכרון וזמן עיבוד, היא אינה מתחרה ישירות בשפות C++ / C או שפת סף.
התחביר של #C מבוסס בעיקרו על שפת התכנות ++C אך העיקרון התכנותי הושפע רבות מוויז'ואל בייסיק ומג'אווה, שמהן אומצו מספר מוטיבים כמו תכנות מונחה-אירועים, תכנות הצהרתי, תכנות פונקציונלי ותכנות גנרי.
מקור שמה הוא פרפרזה על מקור שמה של ++C שהוא אופרטור הקידום שמשמעו "קידום ערך באחד" או בהקשר זה קידום שפת C רמה אחת מעל.
במוזיקה משמעות #C היא הוספה של חצי טון לתו C (או "דו דיאז").
רעיון השימוש בסולמית אומץ על ידי "מיקרוסופט" כסיומת נפוצה לטכנולוגיות אחרות מבית החברה שעברו שיפוץ.
שפת #C תוכננה במטרה להשתלב בתשתית דוט נט הכוללת ספרייה תקנית גדולה וסביבת זמן ריצה.
עם זאת, השפה איננה דורשת את דוט נט וקיימת מערכת מקבילה לסביבת לינוקס בשם Mono, ומערכת בשם Xamarin לסביבת אנדרואיד.
בשפה שולבו מספר מאפיינים בולטים שהם חלק מובנה מהעיקרון הטכנולוגי של דוט נט:
תמיכה בסריאליזציה שבה נשמר רצף בין הזיכרון לדיסק, כך ניתן לשמור אובייקט לקובץ ולשחזר אותו.
מקביליות (Concurrency) שבה ניתן לבצע פעילות אסינכרונית של עצמים שונים.
שיקוף (Reflection), כלומר חקירת מאפיינים שונים הקשורים לשפה עצמה בזמן ריצה, למשל לבדוק מהו הטיפוס המדויק של אובייקט נתון.
באמצעות תכונה זו ניתן למשל להחליף שם של משתנה בכל המרחב, לעטוף שדה באמצעות תכונה, או להוציא חלק מקוד לפונקציה חדשה.
תכונות (Attributes) שמאפשרות להגדיר מגוון רחב של עזרים בקוד התכנותי, כמו פירוט תכונות של מחלקות, שיטות ומשתנים, הגדרת תהליכים תכנותיים ועד הסבר מובנה.
מה שמייתר צורך בקובצי הגדרה חיצוניים כמו DEF ו-IDL.
אירועים (Events) שמאפשרים לרשום פונקציות לאירועים, ולהזניק הודעות מאובייקט אחד לשני.
ההיררכיה של קוד ב-#C מתחילה בפתרון (Solution) שיכול לאגד בתוכו פרויקטים (Project).
כל פרויקט יכול לאגד בתוכו מחלקות (class).
כל מחלקה יכולה להכיל בתוכה פונקציות (Function).
פונקציות יכולות להיות משויכות למתחם שם (namespace).
למרות שלמהדר השפה אין קדם מעבד (preprocessor) נפרד, ניתן לתת לו הנחיות בדומה לשפת ++C כאילו יש קדם מעבד.
כל הנחיה תוקדם בתו #.
במסגרת הנחיות אלה ניתן לתת הנחיות למהדר, להשתמש במשתני מערכת, לבצע פקודות התניה, ולחולל שגיאות ואזהרות של המהדר.
הטיפוסיות בשפה היא סטטית (עם תמיכה ברב-צורתיות של זמן ריצה), ותמיכה בטיפוס דינמי, המאפשר עבודה ב"טיפוסיות-ברווז" דינמית.
מערכת הטיפוסים היא חזקה ובטוחה, למעט באזורים בקוד המסומנים באמצעות המילה השמורה unsafe.
באזורים אלה מתאפשרת גישה ישירה לזיכרון בעזרת מצביעים (בדומה לשפת ++C).
על פי רוב, טיפוסי המשתנים מוגדרים במפורש, אך בהקשרים רבים ניתן להשתמש במילה השמורה var על מנת לבקש מהמהדר להסיק אותם בעצמו.
כמו כן, ישנה הסקה מובלעת של טיפוסים במבנים תחביריים שונים כגון ביטויי למדא.
משתני ערך לעומת משתני ייחוס
בשפת #C ישנה חלוקה של הטיפוסים לשני סוגים:
טיפוסי ערך (Value Types): בעלי סמנטיקת ערך, בדומה למצב בשפת ++C.
טיפוסי ערך יורשים מהמחלקה ValueType (שבתורה יורשת מ-object).
טיפוסי ערך הם הטיפוסים הפרימיטיביים (כגון int, double, char), מבנים (struct), ו-enum.
עבור טיפוסי ערך קיים מנגנון אריזה (Boxing) ההופך אותם לטיפוסי התייחסות כאשר הדבר נדרש.
טיפוסי התייחסות (Reference Types): בעלי סמנטיקת התייחסות, בדומה למצב בשפת ג'אווה.
מחלקות, מערכים, רשומות (records) נציגים (delegates) ממשקים, טיפוסים דינמיים ומחרוזות הם טיפוסי התייחסות.
ההבדל העיקרי בין שני סוגים אלו הוא באופן שבו הנתונים מוחזקים בזיכרון.
בעוד שמשתני ערך מחזיקים את התוכן עצמו, משתני ייחוס מחזיקים כתובת אל התוכן, כתוצאה מכך ישנו הבדל באופן שבו האובייקט מועתק (בפעולת השמה או בהעברה כפרמטר).
בהעתקת "משתנה ערך" מועתק האובייקט עצמו, וכל פעולה המתבצעת בפונקציה מבוצעת על העותק, ולא על האובייקט המקורי.
בהעתקת "אובייקט מטיפוס התייחסות", מועתק ייחוס (מזהה המגדיר כיצד למצוא את האובייקט בזיכרון), וכל פעולה שאיננה העתקה מבוצעת על האובייקט המקורי (באופן דומה מעט לעבודה עם מצביעים בשפת C).
בדומה למחלקה, גם מבנים יכולים להכיל קבועים, שדות, תכונות, מתודות, אופרטורים, אירועים ואף לממש ממשקים, אך לא ניתן להגדיר עבורם ירושה.
בעוד שמחלקה היא מבנה התכנות העיקרי, מבנים מיועדים לעטוף קבוצות קטנות של משתנים קשורים, בעיקר כאלה שאינם אמורים להשתנות לאחר היצירה של האובייקט.
אין לבלבל בין טיפוסי ערך והתייחסות ובין העברת פרמטרים על פי ערך ועל פי התייחסות (ר' בהמשך).
ברירת המחדל של העברת פרמטרים למתודה היא על ידי העתקה: אובייקט מטיפוס ערך מועתק בעצמו, ועבור אובייקט מטיפוס התייחסות מועתקת ההתייחסות אליו.
ניתן לשלוט על כך באמצעות הגדרת הפרמטרים כ-ref או כ-out (הן במתודה והן בקריאה אליה).
פרמטר המוגדר כאחד מהם דורש משתנה ממש (או ביטוי שניתן לבצע אליו השמה – lvalue.
ולא אובייקט); משתנה זה מועבר בעצמו – ללא העתקה – ופעולות השמה בתוך המתודה מתבצעות ישירות עליו.
העברת משתנה כ-ref מחייבת אתחולו לפני הפעלת המתודה, והמתודה רשאית לקרוא ממנו או לכתוב אליו.
העברת משתנה כ-out מאפשרת לדמות החזרה של מספר ערכים מהמתודה.
המתודה איננה רשאית לקרוא מהמשתנה אלא רק לכתוב אליו.
ניתן להגדיר מתודה המקבלת מספר משתנה של פרמטרים בעזרת המילה השמורה params.
ניתן להגדיר קבוע (const) המאותחל בזמן הקישור, אשר בקוד ה-MSIL יוחלף לערכו.
ניתן להגדיר משתנה קריאה-בלבד (readonly) היכול להיות מאותחל בזמן ריצה באמצעות הבנאי, וערכו אינו נשמר בקוד ה-MSIL, בניגוד לקבוע.
השפה מורכבת מטיפוסי המשתנים המובנים הבאים:
בטיפוסי המספרים השלמים ניתן להוסיף קידומת u, בכדי לציין מספר חיובי ובכך להכפיל את גודלו.
טיפוס מחרוזת הוא גם מערך של char.
לכל אחד מהטיפוסים יש מבנה תואם, שמכיל קבועים ושיטות סטטיות תואמות לטיפוס, שמקלות על ביצוע חישובים מתמטיים, כך:
ל-int למשל יש שיטות כמו חישוב מספר מקסימלי, חישוב לוגריתמי, והאם מספר נתון הוא תוצאה של חזקה שנייה
ול-double יש למשל שיטות לחישוב שורשים, שיטות לטריגונומטריה, וקבוע Pi
בנוסף יש לטיפוסים מספריים מחלקה כללית לביצוע חישובים בשם Math, ולטיפוס מחרוזות יש מחלקה בשם string שמכילה שיטות מחרוזתיות שונות.
כל אחד מסוגי הטיפוסים יכול לשמש כאיבר במערך (array), (המצוין בשפה באמצעות סוגריים מרובעות []).
בכדי לבצע פעולות על מערך כמו איפוס, שינוי גודל, העתקה, מיון, חיפוש, מעבר סדרתי ועוד, ניתן להשתמש במחלקת Array.
ניתן ליצור בשפה מערך לא רק בממד אחד (וקטור) או שניים (מטריצה) אלא אף בריבוי ממדים.
כך למשל ניתן להגדיר מערך תלת-ממדי שמייצג קובייה הונגרית: int[,,] array3D = new int[3, 3, 6];
מספר הממדים המקסימלי של מערך הוא 32 ממדים.
ניתן לממש בשפה מערך משונן שהוא מערך שהאיברים שלו הם מערכים, הוא נקרא לפעמים מערך של מערכים.
המערכים יכולים להיות בגודל שונה.
להלן הצהרה על מערך חד-ממדי הכולל שלושה איברים, שכל אחד מהם הוא מערך חד-ממדי של מספרים שלמים.
ניתן ליצור מערכים משוננים מקוננים, שבו איבר במערך משונן יהיה בעצמו מערך משונן.
הגדרה למערך כזה תראה באופן הבא:
ניתן לקבץ ביחד למבנה אחד ערכים של טיפוסי משתנים שונים בשימוש באובייקט Tuple.
הדבר שימושי במיוחד לפונקציה שמחזירה ערכים מרובים, ומייתר את השימוש בפרמטר מסוג out.
הנתונים ב-Tuple הם לקריאה בלבד, ומוגבלים לעד 7 פריטים.
דוגמה לשימוש ב-Tuple בכדי להחזיר מספר ערכים מפונקציה GetPerson.
בשפה קיימים שני סוגי משפטי התניה: if ו-switch וארבעה משפטי לולאות: שניים סדרתיים: for, foreach, ושניים בעלי התניה while ו-do while.
לולאת for היא לולאה סדרתית קלאסית שמבצעת חזרות במספר קבוע, לולאת foreach היא לולאה שמיועדת לעבור על אוסף או מבנה נתונים באופן סדרתי ולייצג את האיבר הנוכחי בחזרתיות.
לולאה זו נלקחה משפת וויז'ואל בייסיק והיא ידידותית לשימוש באוספים.
בלולאות ההתניה אין מספר קבוע של חזרות והן יתקיימו כל זמן שערך ההתניה הוא אמת.
כמו בשפות רבות האופרטורים מתחלקים לקטגוריות שונות:
שפת #C היא שפה מונחית-עצמים, התומכת בכימוס (Encapsulation), בירושה ובפולימורפיזם של זמן ריצה.
המחלקה שהיא האובייקט הבסיסי, מורכבת ממשתנים שבדרך כלל יהיו פרטיים, מאפיינים שיאפשרו גישה פומבית למשתנים.
משיטות שהן הפונקציות המיוחדות לאובייקט, ומאירועים שהאובייקט יכול להזניק לאובייקט שמשתמש בו.
בשפת #C כל מחלקה יכולה לרשת ישירות ממחלקה אחת בלבד, וישנה אפשרות לממש מספר ממשקים (Interfaces): מחלקות הכוללות מתודות מופשטות בלבד, ומשמשות כחוזים המכריחים את המחלקות היורשות לממש את המתודות המוגדרות בממשק.
ב-#C קיימת ירושה ציבורית בלבד; לא ניתן להחיל הגבלות גישה על מחלקות האם.
מחלקה מופשטת (abstract) היא מחלקה המשמשת כמחלקת אם בלבד; לא ניתן ליצור עצמים של המחלקה שלא דרך מחלקה יורשת, והיא מגדירה טיפוס משותף, ממשק משותף (אם מוגדרות בה מתודות) ומימוש ברירת מחדל (אם מוגדרות בה מתודות לא-מופשטות או משתנים) עבור מחלקות יורשות.
מחלקה חתומה (sealed): מחלקה שלא ניתן לרשת ממנה (מקביל ל-final בג'אווה).
מחלקה שלא ניתן ליצור מופעים שלה כלל.
תפקידה הוא לאגד מתודות סטטיות (שהן למעשה פונקציות) קשורות בינן לבין עצמן.
מחלקות סטטיות מאפשרות לכתוב מתודות-הרחבה (ראה בהמשך) עבור מחלקות אחרות.
שיטה היא בלוק קוד בעלת חתימה מסוימת המכילה סדרת הוראות, שביצועה נעשה באמצעות קריאה לה באמצעות השימוש בשמה.
כל פקודה בשפה מבוצעת בהקשר של שיטה המכילה אותה.
כל השיטות חייבות להיות מאוגדות במחלקות (class) או מבנים (struct), ובפרט הפונקציה Main, שהיא נקודת הכניסה (ההתחלה) של התוכנית.
הצורות האפשריות לכתיבת שיטה מתוארות באופן הבא (כאשר אפשרויות אופציונליות נמצאות בסוגריים מרובעים):
שיטה שמחשבת חזקה ריבועית יכולה להכתב באופן הבא:
כמו בשפת ++C שיטה שלא מחזירה ערך מסומנת באמצעות הקידומת void במקום טיפוס משתנה.
החזרת הערך והיציאה מהשיטה נעשית באמצעות ההוראה return.
בשפת #C לא ניתן לכתוב פונקציות גלובליות או להגדיר משתנים גלובליים כמו בשפת ++C וויז'ואל בייסיק.
התחליף לפונקציה גלובלית הוא מתודה סטטית (static), המופעלת דרך שם המחלקה שלה בלי הצורך ליצור מופע.
כתחליף למשתנה גלובלי ניתן להגדיר משתנה סטטי במחלקה.
מתודה סטטית איננה יכולה לגשת למשתנים רגילים ללא התייחסות לאובייקט ספציפי, אך יכולה לגשת למשתנים סטטיים, שאותם ניתן לאתחל באמצעות בנאי סטטי.
ניתן להגדיר מחלקה כסטטית, ובמחלקה כזאת ניתן להגדיר רק מתודות סטטיות.
לדוגמה, המחלקה Console היא סטטית, וכך גם המתודות הכלולות בה כגון WriteLine.
סוג מיוחד של מתודות סטטיות הן מתודות-הרחבה (extension methods).
במחלקות מופשטות ובממשקים ניתן להגדיר "מתודה מופשטת": חתימה של מתודה ללא מימוש, שתמומש על ידי מחלקה יורשת.
ניתן להגדיר מתודה כמדומה (virtual) ולאפשר שינוי של המתודה במחלקה היורשת באמצעות המילה override.
מתודה מדומה היא מתודה עבורה קיים מימוש, אך מימוש זה עשוי להיות מוחלף (להידרס) במחלקה יורשת.
ניתן למנוע דריסה של מתודה מדומה במחלקה יורשת על ידי הגדרתה כמתודה חתומה (sealed) במחלקת הבסיס.
#C מאפשרת העמסת מתודות, שהיא האפשרות לכתוב מתודות בעלות שם זהה, וחתימה שונה (רשימת הפרמטרים צריכה להיות שונה בטיפוסי הפרמטרים או במספרם).
כמו כן ניתן ליצור מתודה עם מספר לא ידוע של פרמטרים (באמצעות מילת המפתח params והגדרת מערך ברשימת הפרמטרים.
גם ניתן ליצור ערכי ברירת מחדל בפרמטרים של מתודה באופן דומה לכתיבה ב-#C.
למחלקה בשפה ניתן לכתוב בנאי (Constructor) המופעל כאשר נוצר מופע, והורס (Destructor) המופעל לפני מחיקת המופע.
ההורס קורא בעקיפין למתודה מסיימת (Finalize).
כברירת מחדל נוצרים בנאי והורס ריקים.
ניתן ליצור מספר רב של בנאים באמצעות העמסה.
ייעודה של מתודת ה-Finalize הוא שחרור משאבים שהם Unmanaged – כלומר משאבים שאינם מנוהלים על ידי ה-CLR.
למתודת ה-Finalize עלולה להיות השפעה גדולה על ביצועי התוכנה מאחר שהיא נקראת בתהליך איסוף הזבל אשר משהה עד לסיומו את התהליכונים המנוהלים על ידי ה-CLR.
ניתן ליצור מתודה אסינכרונית עם הקידומת async שההוראות שבה יתבצעו באופן אסינכרוני כמו למשל באמצעות Task.
יחידת ההסתרה ב-#C היא המחלקה (ולא האובייקט).
ישנן שש רמות הרשאה לגישה לשדות המחלקה:
private: (פרטי) מותרת גישה אך ורק מתוך המחלקה הנוכחית.
public: (ציבורי) מותרת גישה מכל מקום.
internal: (פנימי) מותרת גישה מכל מקום בתוך המכלול (assembly) של המחלקה, שהוא הקובץ בשפת-הביניים אותו מריצה סביבת הדוט נט לאחר שהתוכנית עוברת הידור.
protected: (מוגן) מותרת גישה מתוך המחלקה הנוכחית ומתוך מחלקות יורשות, גם אם הן במכלול אחר.
protected internal: (פנימי מוגן) מותרת גישה מתוך המכלול הנוכחי ומתוך מחלקות יורשות, גם אם הן במכלול אחר.
private protected: (מוגן פרטי) מותרת גישה מתוך המחלקה הנוכחית ומתוך מחלקות יורשות במכלול הנוכחי.
ניתן לפצל קוד במחלקה חלקית (partial), שהיא מחלקה אחת שמפוצלת למספר מקומות (ואף במספר קבצים).
דוגמה רווחת לכך הוא פיצול הגדרת פקדי טופס WinForms שנוצרים באמצעות המחולל הגרפי לקובץ designer נפרד, כדי לשמור על קובץ cs נקי לכתיבת הקוד עצמו.
מופעים של מחלקה מקוננת נוצרים באופן בלתי תלוי במחלקת האם (כלומר, אין מחלקות מקוננות לא סטטיות, בניגוד למצב בשפת ג'אווה).
מאפיין הוא שיטה מיוחדת הנקראת Accessor (מאפשר גישה) שמתנהגת מבחינה תחבירית כמשתנה חבר ותפקידה לאפשר גישה לשדות פרטיים.
בדומה למוסכמה השכיחה בג'אווה לכנות מתודות שתפקידן השמה ואחזור של ערכים get ו-set בהתאמה ולאחריהן שם התכונה.
אומץ רעיון ה"מאפיינים" מוויז'ואל בייסיק כדי להקל על השמה ואחזור שדות פרטיים.
בתפיסה זו מאפיין מורכב משדה ושיטות הפועלות עליו: האחת קוראת (getter) והאחרת כותבת (setter).
כל שנדרש להגדיר הוא הגבלת ההרשאה (Access Modifier) על פי רעיון הכימוס, לקבוע מה יהיה הערך המוחזר ולקבוע את שם המאפיין.
מימוש המאפיין מתנהג כפונקציה חברה לכל דבר, כך ניתן לשלוט בערכים המושמים והמאוחזרים בזמן הריצה.
בכל פעם שתתבצע גישה למאפיין היא תופנה ל-get וכל פעם שיוצב ערך במאפיין תתבצע הפעלה של set.
כמו כן, החל מגרסה 2.0, ניתן לקבוע רמות הרשאה שונות ל-get ול-set (כך, לדוגמה, ניתן לקבוע הרשאת גישה ציבורית לאחזור get ולהגביל את השמת הערך set ל"פנימי מוגן" כך רק מחלקות יורשות יוכלו לשנות את השדה.
או להסיר את ההשמה לחלוטין, במקרה כזה יקרא המאפיין "קריאה בלבד").
מעבר לעובדה שהמאפיינים מהווים רמת הפשטה למשתמש, הם הופכים את השדה לשדה חכם (smart field) שמאפשר לבצע פעולות נוספות בעת השמה או אחזור, כמו בדיקות תקינות או חריגה או לבצע אתחול עצל, שהוא אתחול בזמן שימוש בשדה ולא בזמן יצירת המחלקה, וכן פעולות לוגיות אחרות.
בדוגמה מחלקת Student שבה מאפיין ציבורי בשם Age שכומס משתנה פרטי בשם _age.
באופן שקול, ניתן גם להגדיר את ערכו של מאפיין ציבורי עם יצירת האובייקט (מגרסה 3 ומעלה): Student student = new Student() {
Console.Write(student.Age);והמימוש במחלקה אחרת יראה באופן הבא: ההשמה תשתמש במתודה set, והתצוגה תשתמש במתודה get של המאפיין.
בגרסה 3 ומעלה נוספו מספר יכולות חדשות ביניהן היכולת ליצור "מאפיינים אוטומטיים" – אם יש צורך בגישה לחבר פרטי ללא לוגיקה כלשהי (וגם להשאיר מרווח תמרון להוסיף לוגיקה כזו בעתיד), ניתן ליישמו בדרך ישירה וחסכונית כמו בדוגמה הבאה.
במקרה זה המהדר מייצר מאחורי הקלעים שדה מגבה שהגישה אליו אפשרית רק דרך המאפיינים, כאילו נכתב הקוד לעיל:
למאפיינים ב-#C תפקיד בתכנות חזותי.
כל המאפיינים של כל פקד, מוצגים בזמן הפיתוח באמצעות גיליון המאפיינים ואף ניתן לשנות את תכונותיהם, באמצעות הממשק הגרפי, כך השינוי ישתקף בטופס באופן מידי כבר בזמן הפיתוח, מבלי שהמתכנת צריך לעשות שימוש בקוד.
אחד החסרונות של מאפיינים הוא ההסתרה (מבחינה תחבירית) של פעולת חישוב.
פעולת גישה למשתנה רגיל היא זולה מאוד, מבחינת זמן חישוב, אך פעולת גישה למאפיין עשויה לדרוש חישוב בלתי מוגבל בזיכרון או בזמן; השפה לא מונעת יצירה של לולאה אינסופית בתוך מאפיין.
מהסיבה הזאת אין זה מקובל להגדיר מאפיינים המבצעים חישובים מורכבים.
C מאפשרת העמסת אופרטורים – שהיא טכניקה המאפשרת לתת משמעות חדשה לרוב האופרטורים הקיימים בשפה, על מנת להקל על הקריאות של התוכנית.
את האופרטור "[ ]" מעמיסים בצורה מעט שונה מהאחרים, בעזרת מנגנון הנקרא סדרן – Indexer הדומה בכתיבתו למאפיין:
החל מגרסה 9 של השפה, נוספה תמיכה ברשומות.
רשומה היא טיפוס ייחוס שדומה למחלקה, שבה אין שיטות אלא רק מאפיינים פומביים – ואת אלה ניתן להגדיר אך ורק בזמן היצירה של הרשומה.
Student stu2 = new Student("Second Student", 24);השוואה בין שתי רשומות נעשית באמצעות האופרטור == או באמצעות השיטה Equals, והשוואה זו, בניגוד לטיפוסי ייחוס אחרים (כגון מחלקות), משווה את הערכים ברשומה ולא את מיקום המצביע.
לכן, אם ניצור שתי רשומות שונות עם פרמטרים זהים, ונשווה ביניהן, תוצאת ההשוואה תהיה true.
האירוע בשפה הוא למעשה מאפיין נוסף של המחלקה, ונחשב לחלק מהעצם כמו השדה והשיטה.
event (אירוע) הוא טיפוס Delegate המובנה בשפה בעל הרשאות גישה מיוחדות: ניתן לרשום לאירוע פונקציות גם מחוץ למחלקה בה הוא מוגדר, אך הקריאה אליהן מתבצעת רק מתוך המחלקה.
ה-Delegate עצמו הוא מחלקה שמכילה רשימה של הפניות לפונקציות, שניתן באמצעותה להזניק פונקציות ממקומות שונים.
ה-event משמש בשפת #C לתמיכה ישירה בתכנות מונחה אירועים.
כדי שיהיה אפשר לתקשר ולהעביר הודעות ומידע בין מחלקות שונות, (בעקבות שפת וויז'ואל בייסיק).
במחלקה המתארחת ניתן ליצור אירועים בחותמות שונות, ולהזניק אותם במקום הרלוונטי במחלקה באמצעות קריאה בשמם, ובמחלקה המארחת ניתן ללכוד אירועים אלו, באמצעות רישום מוקדם של פונקציה מקומית (בעלת חתימה זהה) לאירוע של האובייקט לאחר ההכרזה עליו.
התוצאה היא שבעת שאירוע מוזנק במחלקה המתארחת, הוא גורם למעשה להרצת הפונקציה במחלקה המארחת.
נציג (Delegate) הוא טיפוס הכומס פונקציה, בדומה למצביע פונקציה בשפות C ו-++C, אך בשונה מהם הוא מונחה עצמים, בעל טיפוס חזק ומאובטח.
כל מופע שלו מחזיק רשימת עצמים ברי-קריאה המתאימים לחתימה זאת.
קריאה לנציג יוזמת קריאה של כל השיטות המוחזקים בו.
ניתן לרשום (Subscribe) פונקציות לנציג בעזרת אופרטור =+, ולקרוא להן בעזרת תחביר רגיל של קריאה לפונקציה.
דוגמה לתוכנית "שלום עולם" בעזרת נציגים:
טיפוס בסיסי זה מאפשר להשתמש בטכניקות של תכנות פונקציונלי.
למשל הוא מאפשר לקרוא לפונקציה לא מוכרת במחלקה, ליצור אירועים, ולהפעיל תהליכון (Thread).
ישנם מספר מימושים גנריים ל-Delegates בספריה של #C:
Action: פונקציה המקבלת פרמטרים אך לא מחזירה דבר.
Func: פונקציה המקבלת פרמטרים כלשהם ומחזירה טיפוס כלשהו.
Predicate: פונקציה המקבלת פרמטר אחד ומחזירה טיפוס בוליאני.
Comparison: פונקציה המקבלת שני פרמטרים בני אותו טיפוס, ומחזירה ערך מספרי.
החל מגרסה 2 שפת #C תומכת במתודות אנונימיות – פונקציה הנכתבת בשורת פקודה, ומוגדרת בזמן ההרצה עצמה.
החל מגרסה 3 נוספה תמיכה בביטויי למדא לשפה.
זוהי דרך נוספת תמציתית וגמישה לכתוב מתודה אנונימית.
שימוש בפונקציות אנונימיות נעשה כאשר רוצים להשתמש בפונקציה באופן מקומי מבלי להגדירה במחלקה, או כאשר פרמטר של פונקציה מוגדר כפונקציה, ואז ניתן לכתוב את הפונקציה האנונימית בקריאה לפונקציה, מבלי להגדירה כלל כפונקציה במחלקה.
בדוגמה מימוש של הפונקציה שלעיל באמצעות ביטוי למדא (האופרטור <= מפעיל הלמדא, מפריד בין הפרמטרים של הקלט בצידו השמאלי לגוף הלמדא מצידו הימני).
בביטויי למדא נעשה שימוש רב ב-LINQ.
בדוגמה איתור גודל המילה הקטנה ביותר במערך מחרוזתי מתקבל במשתנה shortestWordLength.
השפה תומכת בפולימורפיזם פרמטרי: ניתן להגדיר מחלקה המקבלת טיפוסים כפרמטרים:
ניתן להעביר כפרמטר כל טיפוס – פרימיטיבי, טיפוס-ערך או טיפוס-התייחסות:
ניתן להגדיר אילוצים של טיפוסים באמצעות משפט where, כך למשל ניתן להגדיר שמחלקה מסוימת תהיה רק מטיפוס מחלקה, מבנה או טיפוס קונקרטי.
וניתן לתת ערכי ברירת מחדל למשתנים הגנריים באמצעות המילה default:public class GenericWithWhere <T> where T : IComperable {}לדוגמה מבטיח כי הטיפוס הפרמטרי יהיה "ניתן להשוואה", בכך שמאלצים אותו לרשת מהממשק המתאים.
מנגנון הגנריות ב-#C איננו מתבצע בעזרת תבניות בזמן הידור (כמו ב-++C) ואיננו נעלם בזמן ריצה (כמו בג'אווה) אלא מתבצע בזמן טעינה, וכל אובייקט שומר בתוכו מידע על הפרמטרים בעזרתם הוא נוצר גם בזמן ריצה, על מנת לאפשר שיקוף ובטיחות טיפוסים.
ניתן להעביר רק טיפוסים (ולא קבועים מספריים, למשל, כמו ב-++C).
מטיפוסים אלה ניתן לדרוש דברים מסוימים, כגון ירושה ממחלקה או ממשק מסוים, או קיומו של בנאי נטול פרמטרים.
לא ניתן לבצע התמחות של מחלקה גנרית עבור טיפוס ספציפי.
כתוצאה מכך, כוח החישוב של מנגנון הגנריות ב-#C חלש יותר משל התבניות בשפת ++C, והוא איננו מאפשר להגדיר חישובים מורכבים שיתבצעו בזמן הידור או טעינה – הוא איננו שלם-טיורינג; כל תפקידו הוא יצירה של טיפוסים, משתנים, נציגים ופונקציות בעזרת פרמטרים (במילים אחרות: הוא מאפשר תכנות גנרי, אך לא מטא-תכנות).
חולשה זו מאפשרת להדר ולטעון קוד גנרי מהר יותר.
על אף שהשפה היא במהותה שפה סטטית, החל מגרסה 4 נוספה לה תמיכה בתכנות דינמי, דהיינו הגדרת האובייקטים כמו משתנים, מאפיינים, שיטות ואירועים בזמן ריצה, ולא בזמן ההידור.
לצורך השימוש בתכנות דינמי נוסף טיפוס חדש מסוג dynamic.
בדוגמה הבאה ניתן לראות שטיפוס המשתנה d1 משתנה בעקבות ההשמה של התוכן, ממחרוזת למספר שלם.
ונוספו מחלקות חדשות לטיפול דינמי (באמצעות מרחב System.Dynamic).
המחלקה DynamicObject שבאמצעותה ניתן להוסיף ולשנות מאפיינים תוך כדי ריצה, ובאמצעות המחלקה ExpandoObject שנותנת טיפול כולל יותר, ניתן להוסיף למחלקה בזמן ריצה כל אובייקט, מאפיין, שיטה ואף אירוע.
מחלקה זו תומכת ב-LINQ ובתחשיב למדא.
דרך נוספת לתכנות דינמי היא באמצעות יכולת השיקוף של ה-#C (אם כי דרך זו מורכבת יותר למימוש).
בדוגמה הבאה נוצרת באמצעות ExpandoObject מחלקה בזמן ריצה שיש לה שני מאפיינים (בשמות Name מסוג מחרוזת ו-Age מסוג מספרי) ושיטה אחת (בשם Increment) שמוסיפה 5 לערך שקיים במאפיין Age.
בסוף הדוגמה יוצג בחלון Output התוכן הבא:
התמיכה מאחורי הקלעים בתכנות הדינמי נעשית באמצעות מהדר אחר ה-DLR ולא ה-CLR.
בשל כך באובייקטים דינמיים לא ניתן להשתמש בתכונת השיקוף ולא ב-Intellisense.
השפה תומכת בתכנות חזותי בעיקר בממשקי משתמש, באמצעות ספריות תקניות של הדוט נט וכלי פיתוח של הויז'ואל סטודיו, כאשר אלמנטים בשפה כאירועים ומאפיינים משתלבים בפיתוח החזותי ומקלים עליו.
ניתן ליצור טפסים (Form) ליישומים שולחניים באמצעות ה-WinForms, דפים (Page) ליישומי אינטרנט באמצעות ה-WebApplication, חלונות (Window) ליישומי גרפיקה מתקדמים באמצעות מודל התכנות WPF, ומסכים (Screen) ביישומי משחקים.
העיקרון שנלקח מוויז'ואל בייסיק, הורחב והועצם, הוא יצירת אובייקט ראשי המסמל טופס, דף או חלון בהתאם לסוג היישום, שיכול להכיל בתוכו פקדים שהם מודלים תכנותיים קטנים, המיוצגים באמצעות צלמיות, שיכולים לתקשר זה עם זה.
על גבי הטופס ניתן ל"צייר" ולמקם פקדים באמצעות גרירתם מחלונית "ארגז כלים" (ToolBox), וניתן לראות את צורת הסידור שלהם באמצעות חלונית "מתאר מסמך" (Document outline/Designer).
ישנה חלוקה פנימית בין פקדים (Controls) (שהם רכיבי תוכנה חזותיים כמו פקד תיבת טקסט ופקד תמונה) לבין רכיבים (Components) (שהם רכיבי תוכנה לוגיים, למשל רכיב FileSystemWatcher שעוקב אחר שינויים בקבצים, או רכיב BackgroundWorker שמאפשר ליצור תהליכון נפרד עם אירועים).
הקשר בין פעולות הממשק לקוד הוא דו כיווני: לכל פעולה חזותית מחולל קוד מתאים, למשל גרירה של פקד אל הטופס יוצרת הכרזה שלו בטופס ואתחול של מאפיינים מסוימים שנקבעו מראש, כמיקום הפקד בטופס, וגודלו, וכל שינוי בקוד מתורגם לייצוגים החזותיים בחזרה.
ב-WebApplication קיימים כ-90 פקדים ורכיבים שונים, וב-WinForms קיימים כ-70 פקדים ורכיבים שונים.
ניתן ליצור פקדי ורכיבי משתמש מותאמים אישית על בסיס פקדים ורכיבים קיימים, או פקדים ורכיבים חדשים.
הפקדים מסווגים בדרך כלל לכמה קטגוריות עיקריות.
ב-WinForms למשל הם מסווגים לשיתופיים, מכולות (פקדים שמכילים פקדים אחרים), תפריטים, נתונים (לעבודה עם מסדי נתונים), תיבות שיח ועוד.
דרך העבודה האופיינית היא גישה אל הקוד מתוך הממשק והליכה מהכלל אל הפרט.
תחילה יש ליצור את הטופס, לשרטט עליו את הפקדים, ולאחר מכן להגדיר את מאפייניהם השונים, והאירועים הדרושים ליישום באמצעות חלונית "מאפיינים" (Properties) שמציגה את המאפיינים והאירועים הקיימים בפקד, ואז ליצור אירוע באזור הקוד, ולכתוב בו את הקוד הנדרש כדי לממש את התוכנית.
השפה גם תומכת, באמצעות Xamarin.Forms, בתכנות אפליקציות חוצה פלטפורמות עבור טלפונים ניידים ומכשירי Windows (עם פלטפורמת UWP).
במטרה למנוע בעיות הנובעות מניהול עצמאי של זיכרון כמו זליגת זיכרון ודריסת זיכרון, שפת #C, כחלק מטכנולוגיית דוט נט, מוגדרת כ"קוד מנוהל" (Managed Code).
המתכנת פטור מן האחריות לשחרור מפורש של זיכרון המוקצה לאובייקט.
סביבת ההרצה (CLR – Common Language Runtime) היא המופקדת על שחרור הזיכרון שתופסים עצמים שאינם בשימוש יותר.
לצורך כך, יוזמת סביבת ההרצה אחת לזמן מה תהליך של "איסוף זבל" (Garbage collection), הממפה את כל העצמים במערכת ומסמן למחיקה את אלו שאינם בשימוש.
לצורך המיפוי מוגדרים מספר רכיבים ראשיים ("שורשים").
עצם הוא בשימוש אם הוא מוחזק על ידי אחד הרכיבים הראשיים, או שניתן להגיע אליו מאחד הרכיבים הראשיים דרך סדרה של עצמים אחרים.
עצמים שאינם בשימוש מסומנים למחיקה.
אם הוגדר עליהם קוד הרצה לפני מחיקה (Finalizer) הוא יבוצע.
ולאחר מכן העצם ימחק והזיכרון אותו תפס ישוחרר.
זיכרון מנוהל אמור להבטיח ניצול של משאבי הזיכרון, אך הוא אינו מגן על משאבים אחרים כדוגמת גישה לבסיסי מידע, קבצים פתוחים וכדומה.
בנוסף, זליגת זיכרון עדיין עלולה לקרות אם כתוצאה משגיאה בתוכנית ניתן לגשת אל עצמים גם כאשר אין בהם עוד צורך.
מנגנון איסוף הזבל לא יכול לדעת שמדובר בשגיאה, ולא יפנה את העצמים מן הזיכרון.
C תומכת בטיפול בחריגות (מנגנון בקרת זרימה המיועד לציין ולטפל במצבים לא תקינים במהלך הריצה של התוכנית) על ידי "זריקת" אובייקטים במעלה שרשרת הקריאות לפונקציה, כדי להעביר מידע על החריגה.
אפשר לזרוק רק אובייקטים ממחלקות היורשות מהמחלקה Exception.
אין דרך להצהיר על החריגות הנזרקות ממתודה, חריגה שנזרקת ולא נתפסת תפעפע עד סביבת הריצה עצמה.
באופן דומה לשפות אחרות, הטיפול בחריגות נעשה על ידי השימוש ב-try-catch-finally, כאשר ניתן לספק טיפוס מסוים ל-catch ולקבל מידע אודות השגיאה:try
כדי להקל על מפתחים להגר משפות אחרות, ובפרט משפת ++C, אל שפת #C, נכללו בשפה "כינויים" למספר מחלקות ומבנים, הזהים לשמות המקבילים בשפת ++C:
בנוסף, קיימים כינויים למחלקות שאינן קיימות כסוגי משתנים בשפת ++C: הכינוי object למחלקה Object, וכן הקידומת unsigned משפת ++C תהיה בדרך כלל הקידומת u לכינוי המתאים (למעט byte, שהוא כבר unsigned, ולכן קיים הכינוי sbyte, שהוא byte עם סימן).
למשל, unsigned int בשפת ++C מקביל ל-uint בשפת #C, שאינו אלא כינוי למבנה UInt32.
המבנה Char בשפת #C מכיל נתון באורך 16 סיביות או יותר (קידוד UTF-16), כדי שיוכל להכיל תו יוניקוד, בניגוד ל-char של ++C שהוא על פי רוב באורך 8 סיביות (מתאים להכיל תו ASCII, או בית בודד).
ניתן להשתמש בכינוי של מחלקה או בשם המפורש שלה, ללא כל משמעות מבחינת ריצת התוכנית.
ל-#C פורסמו מספר מהדורות, בדרך כלל בצמוד להפצת מהדורה חדשה של ויז'ואל סטודיו:
טיפוס מרומז של משתנים מקומיים (var)
מתודות אסינכרוניות (Async / await)
יבוא של טיפוסים סטטיים למרחב שם
אתחול אוטומטי של מאפיין לקריאה בלבד
להלן דוגמה לתוכנית Hello world בשפה זו:
סיאול (בהנגול: 서울특별시; בהאנגול-הנג'ה: 서울特別市 – IPA: ; מבוטא: סָאוּל) היא בירת קוריאה הדרומית.
העיר היא הגדולה ביותר בדרום קוריאה ומשמשת כמרכזה הפוליטי, הכלכלי, החברתי והתרבותי.
מהמאה ה-14 ועד 1945 הייתה עיר בירתה של קוריאה כולה.
בשנת 2025 אוכלוסיית העיר מנתה כ-10,025,800 תושבים, מספר המציב את העיר במקום ה-12 בגודלה בעולם כולו.
מטרופולין סיאול הוא השני בגודלו בעולם, המטרופולין כולו מנה בשנת 2020 כ-27.35 מיליון תושבים המהווים מעל חצי מאוכלוסיית קוריאה הדרומית.
לעיר היסטוריה מתועדת משנת 18 לפנה"ס, כאשר נוסדה על ידי ממלכת פאקצ'ה, אחת משלוש הממלכות של קוריאה, לאחר מכן בתקופת שלטונה של שושלת ג'וסון, ובאימפריה הקוריאנית.
מטרופולין סיאול מכילה ארבעה אתרי מורשת עולמית: ארמון צ'אנגדאוקגונג, מבצר הוואסאונג, ג'ונגמיו, והקברים המלכותיים של שושלת ג'וסאן.
סיאול מוקפת הרים, שהגבוה מביניהם הוא הר בוקהאנסאן, הפארק הלאומי הכי מטויל בעולם.
בסיאול מספר מבנים המחזיקים בשיאים עולמיים ובהם: עולם לוטה, פארק השעשועים המקורה הגדול בעולם, ומזרקת בנפו, מזרקת הגשר הגדולה בעולם.
כמקום הולדתו של הקיי-פופ, נבחרה סיאול ב-2011, בפעם השלישית ברציפות, ליעד המתויר ביותר על ידי תיירים סינים, יפנים, ותאילנדים, עם מעל 10 מיליון מבקרים בינלאומיים ב-2012.
כיום, סיאול נחשבת עיר גלובלית מובילה, שגדלה במהירות, כתוצאה מגאות וצמיחה כלכליות, ונחשבת כ"נס על נהר ההאן" אשר עלתה מתוך האפר של מלחמת קוריאה, עד להיותה המטרופולין בעלת הכלכלה הרביעית בגודלה בעולם, לאחר טוקיו, ניו יורק ולוס אנג'לס.
עם תמ"ג ($773,900,000,000) בשנת 2012. סיאול היא מרכז טכנולוגי מוביל בעולם, במקום השישי עם מספר החברות ברשימת 500 החברות הטכנולוגיות בעולם, ובהן סמסונג, LG, ויונדאי מוטור.
סיאול היא המרכז העולמי הפיננסי בעל הצמיחה המהירה ביותר בעולם, המדורגת במקום החמישי במדד המרכזים הפיננסיים הגלובלי.
מחוז גאנג-נאם, מחוז ג'ונג, והאי יואוי, מהווים את מרכז הטכנולוגיה והמדיה בעיר.
בסיאול יש תשתית מאוד מתקדמת מבחינה טכנולוגית.
יש בה את חדירת הפס הרחב של סיבים אופטיים הגבוהה ביותר בעולם, וכתוצאה מכך, חיבורי האינטרנט המהירים בעולם עם מהירות של עד גיגה-ביט לשנייה.
תחנת הרכבת המרכזית של סיאול, היא הטרמינל הראשי של הרכבת המהירה של קוריאה הדרומית, והרכבת התחתית של סיאול והיא רשת הרכבת התחתית הגדולה בעולם לפי אורך, ובעלת הקו המעגלי הגדול בעולם.
הרכבת התחתית של סיאול, נחשבת לרכבת התחתית הטובה בעולם, והיא הרכבת היחידה בעולם עם דלתות אוטומטיות בלבד, ובנוסף
סיאול מחוברת בעזרת AREX לנמל התעופה הבינלאומי של אינצ'ון, שדורג כנמל התעופה הטוב בעולם במשך 7 שנים ברציפות (2005–2012), על ידי המועצה הבינלאומית לנמלי תעופה.
בשנת 1986, אירחה העיר את משחקי אסיה, בשנת 1988 את האולימפיאדה, בשנת 2002 את המונדיאל, ובשנת 2010, אירחה את הפורום של ה-G-20, ונבחרה כעיר המעוצבת בעולם.
העיר סיאול ידעה שמות רבים בעברה, ובהם:
וִירְיֶה סאוֹנְג (위례성; 慰禮城) בתקופת ממלכת פאקצ'ה.
הָאנְג'וּ (한주; 漢州) בתקופת ממלכת שילה.
נָאמגְיוֹנְג (남경; 南京) בתקופת ממלכת קוריו.
הָאנְסָנְג (한성; 漢城) או הָאנְיוֹנְג (한양; 漢陽) בתקופת שושלת ג'וסון.
קייג'ו (けいじょう; 京城) ביפנית או גיונגסונג (경성; 京城) בקוריאנית, במהלך השלטון היפני על קוריאה.
מקור שמה הנוכחי של העיר הוא מן המילה הקוריאנית סוֹרָפוֹל (서라벌; 徐羅伐) שמשמעותה: "עיר בירה", אשר במקור יוחס לעיר קיונגג'ו, שהייתה בירת ממלכת שילה.
בניגוד לרוב שמות המקומות בקוריאה, לעיר סיאול אין סימן בכתב האנג'ה – הגרסה הקוריאנית של הכתב הסיני.
לאנשים המשתמשים בכתב הסיני – סיאול נכתבת כ-漢城 שנהגה "האנצ'נג" בסינית או "האנסאנג" (한성) בקוריאנית.
פירוש השם – העיר הבצורה ("סאנג") על נהר ההאן.
ב-18 בינואר 2005 הכריז השלטון המקומי של העיר, כי שמה של העיר בכתב הסיני יהיה מעתה ואילך "שואו-אר" (בתעתיק פִּין-יִין: Shǒu'ěr, בסינית: 首爾), כך שהגייתו תדמה להגייה הקוריאנית, כאשר "שואו" משמעו בסינית "ראשון" או "בירה".
השם החדש יופיע בכל המסמכים הרשמיים במקום השם "האנסונג".
שם העיר כפי שהוא נהוג בעברית (וברוב השפות האירופאיות) רחוק מההגייה המקורית.
סיאול נוסדה בשנת 18 לפני הספירה בשם ויריה סאונג כבירתה של ממלכת פאקצ'ה.
מספר חומות אדמה נותרו מאותה תקופה.
מאוחר יותר היה המקום אתר של קרבות בין הממלכות השונות שהיו בקוריאה.
במאה ה-11 בנו שליטי שושלת קוריו ארמון במקום וקראו לעיר נאמגיאנג, "הבירה הדרומית".
בשנת 1394 שונה שם העיר מ"האניאנג" (漢陽) ל"האנסאנג" (漢城), כאשר העיר הפכה להיות בירת שושלת צ'וסון.
העיר הוחרבה בפלישותיו של הידיושי היפני בסוף המאה ה-16 אך נבנתה מחדש.
כמה ניסיונות מודרניזציה בסוף המאה ה-19, סיאול הפכה לעיר הראשונה במזרח אסיה שבה יש קווי חשמל, חשמליות, מים זורמים, קווי טלפון, וטלגרף.
בתקופת השלטון היפני על קוריאה בתחילת המאה ה-20, העיר נקראה גיונגסונג (경성, 京城), ולאחר שחרור המדינה מהיפנים בשנת 1945, ויסודה של קוריאה הדרומית בשנת 1946, החלה העיר להיקרא "סיאול", שפירושו "עיר בירה" בקוריאנית (אף שהשם היה בשימוש בתקופת ממלכת שילה – 57 לפני הספירה ועד 935 לספירה).
בשנת 1949, הופרדה העיר ממחוז גְיוֹנְגִי, וקבלה את מעמדה כ"עיר מיוחדת".
בשנת 1950, במהלך מלחמת קוריאה, סיאול נכבשה פעמיים על ידי כוחות קוריאה הצפונית ופעמיים על ידי כוחות האו"ם והעיר נהרסה כמעט לחלוטין.
ב-14 במרץ 1951, העיר נכבשה לאחרונה בידי כוחות האו"ם.
מאז, גבולות העיר גדלו לתוך עוד ועוד מחוזות, וגבולותיה הנוכחיים של העיר הוקמו בשנת 1995.
ביולי 2020 ראש העיר המכהן מאז 2011, פארק וון-סון, התאבד לאחר שהוגשה נגדו תלונה בגין הטרדה מינית.
ב-11 באוגוסט 2004 הכריזה הממשלה הדרום קוריאנית על העברת עיר הבירה למחוז צפון צ'הונגצ'האנג.
הממשלה העריכה כי המעבר לא יקרה לפני שנת 2012. החלטה זו יצרה תרעומת ציבורית רבה, וב-21 באוקטובר 2004 החליט בית המשפט החוקתי של קוריאה הדרומית כי ההחלטה נוגעת לכל האומה ולכן ההחלטה אינה חוקתית בהיעדר משאל עם, וככזו בטלה.
סיאול נמצאת בצפון-מערבה של קוריאה הדרומית.
העיר משתרעת על 605.2 קמ"ר, ברדיוס של כ-15 ק"מ, ונחצית באמצע על ידי נהר ההאן לשני חלקים – סיאול שמצפון לנהר, וסיאול שמדרום לנהר.
נהר ההאן, וסביבתו היוו חלק מרכזי מאוד במהלך ההיסטוריה הקוריאנית.
שלוש הממלכות של קוריאה חתרו להשתלט על האזור הזה, מכיוון שהנהר שימש נתיב סחר מרכזי לסין (דרך הים הצהוב).
כיום הנהר כבר לא משמש לתחבורה, מכיוון שהשפך שלו ממוקם על הגבול בין קוריאה הדרומית וקוריאה הצפונית, באזור בו אין כניסה לאזרחים.
מרכזה של סיאול היא העיר העתיקה שנבנתה בתקופת שושלת צ'וסון.
באזור זה נמצאים הארמונות, משרדי הממשלה, מרכז העסקים הראשי והמלונות של העיר, כמו גם רוב השווקים המסורתיים.
מרכז זה נמצא בעמק צ'ונג-גי צ'ון (청계천), בו זורם נהר מלאכותי בתוואי של הנהר הקדום.
דרומית למרכזה של העיר זורם נהר האן (한강).
מעברו הדרומי של הנהר נבנו שכונות חדשות, וכן מרכז המסחר העולמי של קוריאה.
על האי יאידו, במרכז הנהר, נמצא בניין האספה הלאומית, אולפני הטלוויזיה, וכן הכנסייה הפרסבטרית הגדולה בעולם.
האצטדיון האולימפי נמצא אף הוא דרומית לנהר האן.
תשעה קווי רכבת תחתית באורך של 1,131 ק"מ מקשרים את מרכז העיר עם פרווריה.
אחד הרחובות המרכזיים והעתיקים ביותר בסיאול הוא צ'ונג-נו (종로) – רחוב הפעמון, שבו היה ממוקם הפעמון שצלצל בעת פתיחת וסגירת שערי העיר.
בתקופת שושלת צ'וסון נבנו "חמשת הארמונות הגדולים" של סיאול:
המוזיאון העממי הלאומי של קוריאה הדרומית
מוזיאון המלחמה של קוריאה הדרומית
הבית הכחול – בית המגורים הנשיאותי
בסיאול נמצאים למעלה ממאה מוזיאונים, ביניהם שלושה מוזיאונים לאומיים ותשעה עירוניים.
המוזיאון הלאומי של קוריאה, הוא המוזיאון הגדול ביותר מבין מוזיאוני סיאול ומבין מוזיאוני קוריאה הדרומית מאז הקמתו ב-1945 ועד היום.
במוזיאון ישנו אוסף של 150,000 ממצאים וחפצי אומנות.
בסיאול שוכנות למעלה מ-30 אוניברסיטאות, שהידועה מכולם היא האוניברסיטה הלאומית של סיאול.
בסיאול תשעה קווי רכבת תחתית שאורכם הכולל 1,131 ק"מ, וכן 200 קווי אוטובוסים.
רשת האוטובוסים משולבת ברשת התחנות של הרכבת התחתית כך ששימוש בכרטיס אלקטרוני מאפשר לשלב נסיעה באוטובוסים וברכבת.
סיאול מקושרת עם ערי קוריאה הדרומית באמצעות רכבות, ובכללן ה-KTX – רכבת התותח המהירה.
בסיאול שני שדות תעופה – שדה התעופה גימפו שנבנה עוד לפני מלחמת האזרחים ומשמש בעיקר לתחבורה פנים מדינתית, ונמל התעופה הבינלאומי של אינצ'ון שבנייתו הסתיימה בשנת 2001, ומשמש כיום לרוב התחבורה האווירית הבינלאומית, כגון קוריאן אייר.
בשל מאמצים רבים של הממשלה להקטנת זיהום האוויר, הצליחו להפחית את זיהום האוויר בסיאול לאותן רמות של טוקיו – ורמות פחותות של זיהום מאשר בבייג'ינג.
בסיאול שישה פארקים, והעיר מוקפת בחגורה ירוקה.
הפארקים הם אתרים פופולריים לנופש של אנשי העיר ולמקום מנוחה בסופי שבוע.
בעיר שלושה פארקי שעשועים: פארק לוטה, אוורלנד, וסיאול לנד.
במהלך חודש מאי 2017 נפתח במרכזה של סיאול גן תלוי בחדש בשם Seoullo 7017 בהשקעה של למעלה מ-30 מיליון דולר.
גאנגבוק-גו (צפון גאנג) (강북구; 江北區)
גאנגדונג-גו (מזרח גאנג) (강동구; 江東區)
גנגנם (דרום גאנג) (강남구; 江南區)
גאנגסו (מערב גאנג) (강서구; 江西區)
ג'ונג-גו (중구; 中區) (כולל אזור קניות יוקרתי מיונגדונג)
סונגבוק (צפון סונג) (성북구; 城北區)
סונגדונג-גו (מזרח סונג) (성동구; 城東區)
סונגפו-גו (דרום סונג) (송파구; 松坡區)
סיאט (בספרדית: SEAT- Sociedad Española de Automóviles de Turismo), ראשי תיבות בלועזית שפרושם: "חברה ספרדית לייצור מכוניות נוסעים", היא יצרנית רכב ספרדית שהוקמה ב-9 במאי 1950. כיום היא חלק מקבוצת פולקסווגן.
כושר הייצור שלה עומד על כ-500,000 מכוניות בשנה.
סיאט נוסדה על ידי שליט ספרד פרנקו בשנת 1950 במטרה לייצר כלי רכב לתושבי ספרד.
מייד לאחר הדחת פרנקו והפיכת ספרד לדמוקרטיה, הבינה סיאט כי היא לא תשרוד ללא שותף כלכלי חזק.
בתחילה הייתה סיאט שותפות לייצור רכב של ממשלת ספרד ושל פיאט האיטלקית.
השותפות יצרה תחת רישיון את דגמי פיאט השונים (ביניהם 124 ו-127 הפופולריים).
בסוף שנות ה-70 השתלטה פיאט על היצרן הספרדי.
ההשתלטות החזיקה מעמד שנים מעטות בלבד ובשנת 1981 רכשה שוב ממשלת ספרד את החברה והחלה לייצר דגמים עצמאיים.
ב-30 בספטמבר 1985 חתמה החברה על הסכם שיתוף פעולה טכנולוגי ושיווקי עם קבוצת פולקסווגן והחלה לייצר את הדגמים איביזה ומאלאגה.
דגמים אלו היו מבוססים על מנועים בנפחים 1.2 וכן 1.5 ליטר אשר תוכנן על ידי חברת פורשה הידועה.
בשנת 1986 הפכה קבוצת פולקסווגן למחזיקת המניות העיקרית וב־1990 השלימה את השתלטותה על החברה והקימה במרטורל ליד ברצלונה מפעל חדיש בו החלו לייצר מכוניות סיאט שהיו מבוססות לחלוטין על פלטפורמה של פולקסווגן.
לדוגמה, סיאט איביזה חולקת את הפלטפורמה שלה יחד עם הפולו של פולקסווגן ועם הסקודה פאביה, המיי זהה לפולקסווגן אפ!, ומיניוואן האלהמברה זהה לפולקסווגן שאראן.
יתרה מכך, סיאט אף מייצרת עבור פולקסווגן מכוניות במפעל במרטורל, כגון דגמי הפולו.
המפעל המתקדם במרטורל הוא מהחדישים ביותר בקבוצת פולקסווגן.
לדוגמה, במפעל זה פותח ועוצב ה-Q7 של אאודי.
במאי 2023 חבר מנהלים הבכיר בחברה החליט כי עד סוף שנת 2030 סיאט תפסיק לייצר מכוניות ותהפוך לחברה המספקת שירותי ניידות עירוניים.
במרץ 2024 נמסרה הודעה לפיה המהלך בוטל.
יבואנית מכוניות סיאט לישראל היא חברת "צ'מפיון מוטורס".
במקביל, נעשה יבוא על ידי "קל אוטו".
החל מסוף שנות ה-90 מכוונת סיאט לפלח הלקוחות הצעיר תוך ייצור מכוניות בעיצוב ספורטיבי, צעיר וחדשני.
לשורות היצרן הספרדי גויס המעצב האיטלקי וולטר דה-סילבה, מי שעמד בראש סדנת העיצוב של אלפא רומיאו והיה אחראי לעיצובם של ה-156 וה-166. בין הדגמים החדשים שעוצבו על ידיו הם דגמי האלתיאה, הטולדו והאיביזה החדישים.
מאז השתלטותה של פולקסווגן ב-1990, סיאט הגבירה את נוכחותה בספורט המוטורי העולמי.
דבר זה נעשה בעיקר בעקבות תוכניתה של פולקסווגן למצב את סיאט כמותג ספורטיבי אשר ימשוך את הדור הצעיר של הנהגים.
הניסיון הרציני הראשון של סיאט להשתתף באליפות העולם בראלי החל עם האיביזה 1.6 ליטר הרגילה בעלת הנעה קדמית.
האיביזה איפשרה לחברה להתחיל לבנות את הניסיון שלה בעולם הראלי והוצגה לראשונה במספר אליפויות אירופאיות.
קופרה היא מחליפת סיאט ספורט שייצרה את מכוניות הספורט של סיאט וכעת הופרדה מסיאט ומיצרת את דגמיה הספורטיביים תחת השם קופרה.
סיאט ספורט הוצגה ב-1985 וקופרה הוצגה ב-2018.
כיום, החברה נוהגת לכנות את דגמיה על שם ערים וחבלי ארץ בספרד.
מיי, מיני המוצעת עם מנוע 1.0 בהספקים של 60/75 כ"ס, מוכרת גם כסקודה סיטיגו ופולקסווגן אפ!.
בניגוד לדורותיה הקודמים, מוצעת עם 5 דלתות בלבד עקב הביקוש הדל יחסית להאצ'בק 3 דלתות.
הדגם הראשון יוצר לראשונה ב-1985 (מקבילה לפולקסווגן פולו).
גרסת הקופרה לא תוצג בדור זה, בעקבות הודעת החברה בינואר 2018 כי תהפוך את 'קופרה' למותג עצמאי.
מתחרה בדגמים כגון מאזדה 2 ורנו קליאו.
לאון, משפחתית קומפקטית בעלת 5 דלתות במבנה האצ'בק, הדגם הראשון יוצר לראשונה ב-1993 (מקבילה לפולקסווגן גולף ואודי A3).
בדורה הראשון בוססה על הלאון (עם תא מטען מוגדל), החליפה את המלאגה, ויוצרה לראשונה ב-1991 (מקבילה לפולקסווגן ג'טה).
בדורה הנוכחי, זהה כמעט לחלוטין לסקודה ראפיד, איתה חולקת את היצע המנועים.
אלהמברה, מיניוואן, הדגם הראשון יוצר לראשונה ב-1996. משווקת בישראל עם מנוע 1.4 בנזין המפיק 150 כ"ס ומסוגלת להכיל עד 7 נוסעים.
במקומות אחרים בעולם, האלהמברה ממותגת גם כפולקסווגן שאראן.
מבוסס על האיביזה; חולק איתה את תא הנוסעים ואת היצע המנועים.
אטקה, רכב הפנאי הראשון של סיאט.
הוצג לראשונה ב-2016 ומוצע עם מערכת הנעה כפולה.
טראקו, רכב פנאי/שטח עם שבעה מקומות הוצג בשנת 2018 ומשווק בישראל מיולי 2021.
גרסאות ספורטיביות לדגמי האיביזה, הלאון והאטקה שעיקרן הוא עיצוב אגרסיבי יותר, אך לעיתים גם כוללות מנועים וביצועים משופרים.
סיאט איביזה היא מכונית סופרמיני המיוצרת על ידי חברת סיאט הספרדית (חלק מקבוצת פולקסווגן).
המכונית מיוצרת משנת 1985 עד היום ולאחרונה הוצגה גרסתה הרביעית.
המכונית מוצעת כיום עם שלוש או חמש דלתות האצ'בק ובגרסת 4 דלתות סדאן (תחת השם "קורדובה").
דגם ה-סיאט אינקה (מכונית מסחרית אשר יוצרה בין השנים 1995–2004) התבסס על דגם ה"סיאט איביזה", דור 2 (SEAT Ibiza Mark 2).
האיביזה הראשונה הייתה מבוססת על הפיאט 127/ריטמו/רגטה והיא השתמשה ביחידת כוח שפותחה בשיתוף עם פורשה.
הייתה זו הסיאט הראשונה שלא השתמשה באף חלק גוף חיצוני המשותף לדיגמי פיאט.
המכונית עוצבה על ידי המעצב האיטלקי, גיורגטו גיוגיארו והיא פורסמה כמכונית בעלת עיצוב איטלקי עם מנועים גרמניים.
במונחים של גודל, היא הייתה גדולה יותר מרוב מכוניות הסופר מיני כמו פורד פיאסטה ופיאט אונו אך קטנה יותר ממכוניות משפחתיות קטנות כמו פורד אסקורט ופולקסווגן גולף.
העיצוב נחשב בזמנו למעורר השראה, ומרווח הפנים היה נאה.
אך האיביזה סבלה מאיכות בניה ירודה, היגוי כבד, ואמינות מפוקפקת.
ב־1999 עיצוב המכונית נמכר ליצרנית הרכב הסינית, נאנז'ינג והיא פותחה מחדש כ"נאנז'ינג יואז'ין סויאט".
בשנת 1991 קבוצת פולקסווגן רכשה את סיאט במלואה, והדור היה הזה הראשון שהתבסס על דגמי פולקסווגן.
האיביזה סימן II נבנתה על פלטפורמה A03 של פולקסווגן (המשותפת גם לפולקסווגן פולו).
המכונית הוצעה עם 3 או 5 דלתות.
גרסת 4 דלתות עם תא מטען נפרד ובולט נקראה קורדובה, והוצעה גם בגרסת 5 דלתות סטיישן (נקראה קורדובה וירו).
ב-1996 עברה מתיחת פנים חיצונית קלה שכללה פגושים חלקים יותר, שינויים בסורג ובפנסים.
הוצעו שתי גרסאות עם מנועים חזקים שנלקחו מהפוקסווגן גולף.
עם הזכיות של דגמי איביזה משופרים בתחרויות הראלי העולמי (WRC) סיאט השיקה ליין של מכוניות ספורטיביות בשם קופרה.
אלו חיזקו את התדמית של סיאט כספרדייה החמה של קבוצת פולקסווגן העניקה לה זהות חזקה וספורטיבית יותר ומיצבה אותה כמותג הספורטיבי של הקבוצה.
קמפיין עולמי שבישראל התבטא בסלוגן "ילדה רעה מבית טוב" חיזק את התדמית.
באותה תקופה הקבוצה שלטה גם בסקודה שמוצבה כמותג הפשוט והזול יותר.
היצע מנועי הבנזין היה 1.0, 1.4, 1.6 ו- 1.8 ליטר ובמנועי הדיזל 1.9 ליטר TDI (הזרקה ישירה) ו- SDI הזהים לאלה של הפולקסווגן פולו.
תחת הבעלות של פולקסווגן, האיביזה שווקה כמכונית ספורטיבית המיועדת לצעירים ונמכרה במחירים תחרותיים.
בעיות האיכות והאמינות הירודות, שמהן סבלה האיביזה מהדור הראשון, תוקנו והיא הוכיחה עצמה כאחת המכוניות האכותיות והאמינות באירופה.
האיביזה שווקה בדרום אפריקה ובארגנטינה כפולקסווגן פולו פליה.
בשווקים מסוימים דגם זה נחשב לדור השלישי.
איביזה סימן-III נבנתה על הפלטפורמה של הפולו הבאה.
המכונית עוצבה על ידי המעצב האיטלקי וולטר דה-סילבה עם קווים אגרסיביים יותר, והיא מוצבה עם תדמית ספורטיבית בעלת ביצועים גבוהים.
המרחב הפנימי גדל ואפשר נסיעה של חמישה מבוגרים.
האבזור שופר גם ברמות הבסיסיות.
המגזין הבריטי הנחשב "What Car?" הכתיר אותה כסופר מיני הטובה ביותר במשך שלוש שנים רצופות.
נוסף לדגמים הבסיסיים הוצעו שתי גרסאות "הוט-האץ'" (כינוי למכונית קטנה בעלת ביצועים ספורטיביים), האיביזה Formula Race) FR) והאיביזה קופרה.
דגמי 2006 שונו מעט בעיצוב הפנימי והחיצוני אך לא היו הבדלים ניכרים.
סיאט הציגה חידוש עולמי כאשר שידכה לגרסאות הספורט, הקופרה וה- FR TDI, מנועי דיזל.
מנועים אלה בעלי הזרקה ישירה נהנו ממומנט גבוה גם בסל"ד נמוך, מה שנתן תחושה של כח לאורך כל ההילוך והקנה לנוהגים במכונית תחושה ספורטיבית חדשה.
האיביזה סימן-IV, הייתה הראשונה מקבוצת פולקסווגן להשתמש בפלטפורמת הסופר מיני החדשה של הקבוצה (PQ25) לפני הדור החמישי של הפולו והאאודי A1. האיביזה החדשה בעיצובו של המעצב הבלגי, לוק דונקרוולקה (Luc Donckerwolke) הוצגה לראשונה במרץ 2008 בתערוכת הרכב הבינלאומית של ז'נבה כמכונית הקונספט "בוקנגרה" (Bocanegra).
שיווקה החל באירופה בקיץ 2008 בגרסה הרגילה עם 5 דלתות, ובגרסת 3 דלתות SC, ספורט-קופה.
בשלהי 2008 הוצגה גרסה ידידותית לסביבה בשם אקומוטיב עם מנוע דיזל 1.4L בעל 80 כ"ס הפולט 98 גרם CO2 לקילומטר.
לאיביזה FR מנוע בהספק 150 כ"ס.
לאיביזה קופרה ולבוקנגרה יש את אותו מנוע 1.4L TSI בהספק 180 כ"ס.
תיבת ההילוכים היא התיבה הרובוטית כפולת המצמד המוצלחת של הקבוצה (DSG) עם שבעה יחסי העברה (התיבה ספגה ביקורת על מספר יחסי ההעברה שכן היא מנסה לדלג על הילוכים ככל שניתן כדי למנוע בלאי וכך יחסי ההעברה הם "על הנייר", במקום להסתפק בפחות יחסי העברה).
הבוקנגרה ("פה שחור" בספרדית), 3 דלתות עוצבה על ידי מעצב למבורגיני לשעבר, לוק דונקרוולקה.
עיצובה מאוד אגרסיבי, הגריל התחתון, והספויילר הקדמי המשולבים בצבע שחור מקנים לה מראה של "פה שחור".
השם נלקח מכינוי שהיה לסיאט ספורט 1200 משנות ה-70.
לדברי אריק שמידט, יו"ר חבר המנהלים, האיביזה החדשה פותחה עבור "צעירים וצעירים ברוחם".
לדבריו, הושם דגש על התאמת המכונית למודעות ההולכת וגוברת לנושאי זיהום אוויר.
אף על פי שהיא גדולה מבעבר, האיביזה החדשה תהיה קלה וחסכונית מתמיד.
הדור החמישי של סיאט איביזה 5 דלתות הושק ב 2017 בז'נבה.
הדגם כלל מגוון שינויים טכנולוגיים וויזואלים.
הוא רחב יותר מאשר הדור הקודם ונפח תא המטען שלו גדל בכ-25%.
זהו הרכב הראשון השייך לקבוצת VAG אשר עושה שימוש בפלטפורמת MQB-A0, .
אפשרויות המנוע אשר ניתנות לרכישה כוללות מנוע בנפח 1.0 ליטר המופעל על ידי 3 צילינדרים ופועל על בסיס בנזין וכמו כן
גרסה מחוזקת, 1.5 Tsi EVO בנפח 1.5 ליטר טורבו בנזין או 1.6 TDi עם 4 צילינדרים המוזנת מדיזל.
וביצועי צריכת דלק (נתוני יצרן) של 21.2 ק"מ לליטר בצריכת דלת משולבת.
באשר למהירות האצה (נתוני יצרן) 0 ל-100 קמ"ש: 9 שניות.
ברמות האבזור השונות דגם זה עשוי לכלול בלימת חירום אוטונומית ובקרת שיוט אדפטיבית.
סיאחת נאמה (בפרסית: سياحت نامه; בטורקית עות'מאנית: Seyahâtnâme) הוא כינוי פרסי לספר מסעות המופיע בעיקר בספרות העות'מאנית.
הסיאחת נאמה מבטא סוגה ספרותית שדוגמאות לה ניתן למצוא החל מימי הביניים ברחבי העולם המוסלמי, החל מטיילים ערביים בימי בית אומיה (661–750).
הסיאחת נאמה של אווליה צ'לבי
הדוגמה המובהקת ביותר של סוגת הסיאחת נאמה היא הסיאחת נאמה שכתב הטייל הטורקי בן המאה ה-17 אווליה צ'לבי (Evliya Çelebi).
הספר מקיף 10 כרכים שמתארים את מסעותיו ברחבי האימפריה העות'מאנית החל בעיר הולדתו איסטנבול, דרך אנטוליה, הקווקז, פרס, החלקים העות'מאניים של אירופה בבלקן, אוסטריה, צפון אפריקה, סוריה, ארץ ישראל, החג'אז ומצרים (קהיר) ואזורים רבים נוספים.
בשל חשיבותו, נהוג לציין במחקר בשם סיאחת נאמה בעיקר יצירה זו, וכך נהוג גם בשפה הטורקית.
קטעים מתוך הסיאחת נאמה של אווליה הנוגעים לארץ ישראל תורגמו לאנגלית בידי סטפאן חנא סטפאן וליאו אריה מאיר עוד בשנות ה-30. קטעים אלה פורסמו שוב ב-1980 בידי אלי שילר ("ארץ ישראל במאה השבע-עשרה ב של צ'לבי", ירושלים: הוצאת אריאל) שגם הוסיף תקצירים בעברית.
סיאגריוס (Syagrius; 430 – 486 או 487) היה המושל הרומי האחרון (Dux) בגאליה בשלהי העת העתיקה.
סיאגריוס היה בנו של אגידיוס, מגיסטר מיליטום רומי בגאליה, וירש אותו אחרי מותו ב-464 או 465. השטח בו החזיק סיאגריוס השתרע בין הנהרות סום והלואר, ובירתו הייתה סואסון (כיום במחוז אן בחבל פיקרדיה שבצרפת).
עם נפילתה של האימפריה הרומית המערבית ב-476, כאשר אודואקר הכריז על עצמו מלך איטליה ורומולוס אוגוסטולוס, הקיסר האחרון הודח, נשאר סיאגריוס השליט הרומי האחרון בגאליה ובשטחי האימפריה הרומית המערבית.
לטריטוריה שהייתה בשליטתו קרא ממלכת סיאגריוס או ממלכת סואסון.
גרגוריוס מטור ב"ההיסטוריה של הפרנקים" מכנה את סיאגריוס בתואר מלך.
תואר שהיה נהוג אצל הפרנקים אבל לא היה נהוג אצל הרומאים.
ב-486, אחרי קרב סואסון כבש כלוביס הראשון את ממלכתו של סיאגריוס, כיבוש זה השלים את השתלטות הפרנקים על גאליה בלגיקה.
על פי גרגוריוס מטור, הצליח סיאגרוס להימלט לטולוז, ולמצוא מקלט בחצרו של המלך אלאריק השני מלך הויזיגותים.
כלוביס איים על אלאריק והלה הסגיר את סיאגריוס לידי כלוביס.
כלוביס החזיק את סיאגריוס בכלא עד שקיבל את המלוכה ואז הוציא אותו להורג בחשאיות.
עם חלוקת ירושתו של כלוביס, נכללה ממלכת סיאגריוס בנויסטריה, ממלכתו של כלותאר הראשון
סי סצ'נלאי (בתאית: ศรีสัชนาลัย) הייתה עיר המינהל של ממלכת סוקהוטהאי, הממלכה הראשונה בסיאם, במאה ה-13 וה-14. סי סצ'נלאי ממוקמת כ-65 קילומטרים מצפון לעיר הבירה של הממלכה, סוקהוטהאי, ונחשבה כעיר האחות שלה.
בנו השני של מייסד הממלכה, ראמחאמהאנג (Ramkhamhaeng, "ראם החזק"; 1280–1318 לערך), היה אחד מהשליטים החשובים בתולדות תאילנד העתיקה; הוא הרחיב את גבולות ממלכתו בשורה של מלחמות, ובתחום החברתי ייסד ארגונים צבאיים וחברתיים, שנבנו על פי המבנים הארגוניים שהיו קיימים באימפריה הקמרית.
סגנון הבנייה שפותח בערים אלה היה תוצר של השפעות תרבותיות שונות, שהוטמעו בסגנון החדש.
העיר ההיסטורית סי סצ'נלאי נמצאת סמוך לעיקול בנהר יום, וסמוכה לעיר מודרנית באותו שם.
העיר הייתה מקור חשוב לייצור כלי קרמיקה מזוגגים, שנקראו כלי סאנגהאלוק.
כלים אלה יוצאו לממלכות רבות בדרום-מזרח אסיה, ואף לסין, יפן, מלזיה, הפיליפינים ואינדונזיה.
שרידי העיר כוללים כ-140 מבנים, שהבולט בהם הוא מנזר צ'אדי צ'ט ת'או (Chedi Chet Thao, המקדש בעל שבע הפינות).
המבנה המרשים כולל צ'אדי (סטופה) מרכזי, בצורת פרח לוטוס, ושבע שורות של סטופות מוארכות שבהן נטמן אפרם של מושלי העיר.
הסטופות מעוטרות בפסלי גאוטמה הבודהה ועיטורי טיח שונים, שניכרת בהם השפעות אדריכליות מסרי לנקה, באגאן (בבורמה), וסריויג'איה (במלאיה).
מונומנטים בולטים נוספים כוללים את ואט צ'אנג לום (Wat Chang Lom) וואט נאנג פאיה (Wat Nang Phaya).
ואט צ'אנג לום היא סטופה אופיינית, שניכרת בה השפעה של אדריכלות סרי לנקה.
המבנה נתמך ב-39 פסלי פילים, השונים למדי בצורתם מפסלי פילים במקדשים אחרים.
ואט נאנג פאיה היא מנזר בודהיסטי, שקירותיו החיצוניים מצופים בלבני חמר מעוטרות; הצ'אדי המרכזי מעוצב בסגנון האדריכלי של סקי לנקה.
הבסיס הגבוה של המקדש היה מעטור גם הוא, בעבר, בפסלי פילים דומין לפסלים שבואט צ'אנג לום.
העיר הוגדרה כפארק לאומי בתאילנד ב-1983, ושימורה מופקד בידי הממשלה בסיוע אונסק"ו.
הפארק ההיסטורי סי סצ'נלאי הוכרז כאתר מורשת עולמית ב-1991, יחד עם הפארק ההיסטורי סוקהוטהאי וקמפהנג פט.
במהלך שיטפונות 2011 בתאילנד, שטפו מי נהר יום את הפארק סי סצ'נלאי והציפו שני תנורי חרס היסטוריים.
סיאד קולאזינאץ' (בבוסנית: Sead Kolašinac; נולד ב-20 ביוני 1993; קרלסרוהה שבגרמניה) הוא כדורגלן גרמני-בוסני המשחק באטלנטה ובנבחרת בוסניה והרצגובינה בעמדת המגן שמאלי.
קולאזינאץ' התחיל את הקריירה שלו בקבוצת הילדים של קרלסרוהה.
אחרי שמונה שנים עבר להופנהיים, לאחר מכן לשטוטגרט ולבסוף הגיע לשאלקה 04. אחרי עונה אחת במחלקת הנוער בשנת לקבוצת המילואים של המועדון, וב-7 הופעות הבקיע 2 שערים.
ב-15 בספטמבר 2012 ערך את הופעת הבכורה שלו בקבוצה הראשונה בניצחון 0–2 נגד גרויטר פירת'.
בדצמבר ערך את הופעת הבכורה שלו במסגרת אירופית בתיקו 1-1 נגד מונפלייה במסגרת שלב הבתים של ליגת האלופות.
ב-6 ביוני 2017 חתם קולאזינאץ' בארסנל מהפרמייר ליג.
ערך את הופעתו הבכורה נגד צ'לסי במגן הקהילה בן כבש את שערו הבכורה.
ב-31 בדצמבר 2020 חזר לשאלקה 04 והושאל עד לסוף העונה.
ב-18 בינואר 2022 חתם במרסיי מהליגה הצרפתית.
ב-6 ביולי 2023 חתם באטלנטה האיטלקית.
קולאזינאץ' הוא יליד גרמניה ובן להורים שהיגרו מבוסניה והרצגובינה.
לאחר ששיחק בכל נבחרות הנוער של גרמניה, החליט בשנת לייצג את בוסניה והרצגובינה וב-18 בנובמבר 2013 ערך את הופעת הבכורה שלו בהפסד 0–2 נגד .
סיאד חלילוביץ' (בבוסנית: Sejad Halilović; נולד ב-16 במרץ 1969) הוא כדורגלן עבר בוסני אשר שיחק בעמדת הקשר וייצג את נבחרות ו.
חלילוביץ' החל את הקריירה המקצוענית שלו בקבוצה הקרואטית ציבאליה, ובמהלך השנתיים בהם שיחק בקבוצה שותף 46 פעמים וכבש 4 שערים.
בשנת 1992 חתם בקבוצת קרואטיה זאגרב (כיום דינמו זאגרב) לשלוש עונות, במהלכן זכה באליפות ובגביע.
במהלך שלוש העונות בהן שיחק במועדון שותף חלילוביץ' ב-59 משחקים וכבש תשעה שערים.
בקיץ 1995 חתם חלילוביץ' בריאל ואיאדוליד מהליגה הספרדית, אך לאחר עונה בה שותף 17 פעמים ולא מצא את הרשת, עבר לליגה הישראלית וחתם בקבוצת הפועל באר שבע אותה אימן אלי גוטמן.
חלילוביץ' היה חלק משמעותי בקבוצה שזכתה באותה העונה בגביע המדינה לאחר שניצחה בגמר 0:1 את מכבי תל אביב.
בקיץ 1997 עבר חלילוביץ' לליגה הטורקית, ושיחק במשך שלוש שנים בשלוש קבוצות שונות.
בשנת 2000 חזר לקרואטיה וחתם בקבוצת אוסייק, במדיה ערך שמונה הופעות.
בעונת חזר חלילוביץ' שוב לישראל ושיחק בקבוצת עירוני ראשון לציון, וסייע לקבוצה להישאר בליגת העל.
לאחר ששיחק בקבוצות נוספות בקרואטיה, פרש חלילוביץ' ממשחק פעיל בשנת 2004, במדי קבוצת ליובליאנה הסלובנית.
החל משנת 2008 שימש כמאמן במחלקת הנוער של דינמו זאגרב, אך בשנת 2014 עזב את המועדון לאחר שבנו, אלן חלילוביץ', עבר לברצלונה.
ב-17 באוגוסט 1994 ערך חלילוביץ' את הופעתו היחידה במדי נבחרת קרואטיה, בניצחון 0:4 על נבחרת ישראל באצטדיון רמת גן.
בנוסף, לזכותו של חלילוביץ' 15 הופעות במדי נבחרת בוסניה והרצגובינה.
סיאד חלילוביץ' הוא אביו של הכדורגלן אלן חלילוביץ'.
שני בניו האחרים, דינו ודמיר, משחקים במחלקות הנוער של ברצלונה.