פורסם 2007 באוקטובר 918 שנים שלום לכולם.. התחלנו ללמוד בבית ספר את שפת התכנות C#.. תהיתי איך היא והאם יש איזה מגבלות שיש לה לעומת שפות תכנות חזקות אחרות כגון C++...? בנוסף לכך מישהו יודע איך שומרים פרויקט בVISUAL C# של מיקרוסופט כקובץ EXE? תודה רבה
פורסם 2007 באוקטובר 918 שנים C# היא בעצם שדרוג של C++. אם אתה יודע C++, מאוד קל להמיר את הידע שלך לC#.
פורסם 2007 באוקטובר 918 שנים מחבר אני לא יודע C++ וכן לא התכוונתי מבחינת קושי אלא מבחינת כוח השפה ועד כמה רחוק אפשר להגיע איתה.למשל אחת המטרות שלי היא כתיבת FTP CLIENT ללינוקס רציתי לדעת אם זה בגדר חלום או אם זה יכול להיות אפשרי בעזרת שפה זו.יש לי microsoft visual c# express ואני מצליח להפעיל את מה שאני כותב אבל לא לשמור כEXE..אני מאמין שיש שם את האופציה הזו אבל איך?
פורסם 2007 באוקטובר 918 שנים כעיקרון יש תוכנות וספריות שמאפשרות הרצת .NET FRAMEWORK תחת לינוקס, אבל בוא נאמר ככה, אל תבנה על זה ממש..לעומת C++, בגדול, מצד אחד היא יותר חדשה ואולי גם יותר פשוטה, אבל מצד שני - תוכנה שכתובה ב-C++ תוכל לרוץ ברוב מערכות ההפעלה.אבל - אל תבנה על הידע שתרכוז בשנת הלימודים הראשונה בבצפר. אולי אולי אולי אולי אחרי השניה, וגם זה עם לא מעט למידה עצמית כיוון שאתה תלמד את השפה כשפה אבל לא דברים נוספים. אתה תדע לעשות רשימות, מחסניות וכו' אבל לא להתחבר לאינטרנט איתה למשל.זה בהנחה שאתה לומד C# לבגרות, אם אתה לומד C# ועושה פרויקט 5 יחידות בASP.NET עם C#(כמוני למשל) זה יועיל לך הרבה יותר, כיוון שזה הרבה יותר דומה לעבודה עם טפסים, כלומר חלונות כמו שאתה מכיר..
פורסם 2007 באוקטובר 918 שנים מחבר אני לומד שנה ראשונה וכן אני יודע שמה שאני לומד בבית ספר לא יספיק..אגב אני יודע שיהיה לי פרויקט בASP אבל לא בטוח אם הוא קשור לC#..ובקשר לקומפילר יש לך מושג?
פורסם 2007 באוקטובר 918 שנים כל פעם שאתה עושה BUILD לפרוייקט שלך(לוחץ על הירוק למעלה ומריץ), נוצר לך EXE בתיקייה של הפרוייקט\debug.
פורסם 2007 באוקטובר 918 שנים אני לומד שנה ראשונה וכן אני יודע שמה שאני לומד בבית ספר לא יספיק..אגב אני יודע שיהיה לי פרויקט בASP אבל לא בטוח אם הוא קשור לC#..ובקשר לקומפילר יש לך מושג?ASP או ASP.NET? יש הבדל משמעותי =]
פורסם 2007 באוקטובר 1018 שנים תהיתי איך היא והאם יש איזה מגבלות שיש לה לעומת שפות תכנות חזקות אחרות כגון C++...?ל-C# יש כרגע 3 מגבלות עיקריות:1. מהיותה Managed, היא תהיה פחות יעילה משפה שאינה Managed (כלומר C/C++). זה משפיע בעיקר כאשר היעילות בתכנית שלך היא גורם מכריע, לדוגמה אם התכנית שלך מריצה אלגוריתמים מורכבים במיוחד (נניח, מנוע תלת-מימד של משחקי מחשב ייכתב בשפה כמו C, ולא ב-C#).2. שפת C היא הרבה יותר low-level, כלומר היא מאפשרת גישה לרכיבים במחשב ברמה הרבה יותר נמוכה. אפשר לכתוב בה תוכנות שניגשות ישר לחומרה של המחשב (דרייוורים) ומערכות הפעלה (קוד של C# דורש מערכת הפעלה כדי לרוץ, קוד של C לא).3. C# הוא לא באמת cross-platform. כלומר, תכנית שנכתבה ב-C# לא יכולה לרוץ על מערכות הפעלה שאינן windows (קיים פרוייקט בשם mono שנועד לזה, אבל הוא עוד בחיתוליו). C/C++ הן שפות כלליות יותר. זה לא אומר שאותה תכנית שרצה על windows תרוץ על לינוקס, אבל לפחות אתה יכול לכתוב תוכניות ללינוקס ב-C.לגבי 1 ו-2 יש פתרון, והוא שילוב של קוד managed (כלומר C#) וקוד native (כלומר C/C++). ה-native עושה את הדברים הספציפיים שה-managed לא יודע לעשות (כמו חישובים יעילים או גישה לחומרה).
פורסם 2007 באוקטובר 1018 שנים עוד הבדל זה שה-framework של C# גדול מאוד, ולא מתאים לפלטפורמות מוגבלות. זה לא רק עניין של יעילות בזמן ריצה, אלא גם נושא של מגבלות זכרון ואכסון. C# גם פחות מתאימה למה שידוע כתכנות מערכות (systems programming), בין השאר עקב המרחק שלה מקוד המכונה הסופי (שזה יתרון גדול בהרבה תחומים אחרים), והעובדה שלמתכנת יש פחות שליטה על מה שקורה. ל-C++ יש דגש חזק על תכנות מערכות. אולם כשפת תכנות, C# היא שפה מאוד נוחה ואני די אוהב אותה, למרות שמדי פעם יש משהו שהייתי רוצה לחנוק את המתכנתים בגללו אחד החסרונות הגדולים של C# זה התלות המוחלטת שלך במיקרוסופט ובסדרי העדיפויות שלה. מיקרוסופט היא למעשה ספק כמעט יחיד של ה-framework וספק כמעט יחיד של הקומפיילר של C#. לאורך זמן זה לא מצב בריא (למרות שבגדול הם עושים עבודה מעולה). לדוגמא ב-Compact Framework (גרסה קטנה יותר של .NET עבור מכשירי PDA שמריצים windows mobile) יש באגים איומים ונוראים כבר שנים, כולל בדברים בסיסיים וחשובים, ומיקרוסופט לא מתקנת אותם במהירות הראויה (למעשה היא שחררה את זה במצב שהוא יותר beta מאשר משהו שראוי לשימוש). למה היא לא מתקנת אותה? מן הסתם יש להם עדיפויות אחרות, כמו לדחוף טכנולוגיות חדשות שקשורות ל-C# כמו WPF, WCF או SilverLight.
פורסם 2007 באוקטובר 1018 שנים ד.א. ניתן להשתמש בC# במצביעים ע"י המילה השמורה unsafe, וכדי לגשת להשיג מצביע של מערך, נעשה כך:unsafe{ int[,] arr = new int[5, 5]; fixed(int* scan0 = arr) { int* ptr = scan0; for(int i = 0; i < 5; ++i) { for(int j = 0; j < 5; ++j) { *ptr = i * j; ++ptr; } } }}ועם שימוש ב Marshal אנחנו יכולים לעשות עוד המון דברים, שאי אפשר לעשות עם JAVA.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.