עבור לתוכן

C# הגדרת החזרה ב event

Featured Replies

פורסם

יש לי מבנה של פונקצה ובתוכה משתנה בשם num1 מטיפוס double.

מה אני רושם במקום ה Void כדי להחזיר אותו ומה אני רושם בפונקציה השנייה כדי שתקבל אותו?

פורסם

מה שאתה שואל הוא הדבר הכי בסיסי בפונקציות. תעשה לעצמך טובה ותחזור על החומר הזה קודם.

פורסם
  • מחבר

אני יודע מה לעשות ועשיתי את זה פשוט יש לי שגיאה בקומפיילר עם משהו שקשור ב System.Windows.RoutedEventArgs

אז חשבתי שאולי יש לי טעות ולא עליתי עליה לכן שאלתי.

במקום ה Void רשמתי double שלפי מה שאני יודע זה מה שצריך.

פורסם

ואתה מצפה שננחש מה השגיאה?

כתוב כאן את הקוד הרלוונטי ואת הודעת השגיאה המלאה.

פורסם
  • מחבר

		private double btn1_Click(object sender, System.Windows.RoutedEventArgs e)
{
double num1=0;
string labels = (string)lblResult.Content;
string buttons = (string)btn1.Content;
lblResult.Content = labels + buttons;
labels = (string)lblResult.Content;
num1=double.Parse(labels);
return num1;
}

והשגיאה:

'double.CalculatorWPF.MainWindow.btn1_Click(object,System.Windows.RoutedEventArgs)' has the wrong return type

פורסם

אז זו לא סתם פונקציה, זה event, ואתה לא יכול לשנות את ערך ההחזרה שלה כרצונך.

אם אתה רוצה לעשות משהו עם num1 הזה, אז שמור אותו איפשהו ותאפשר גישה אליו.

נ.ב. ערוך את הכותרת למשהו יותר אינפורמטיבי.

פורסם
  • מחבר

תוכל לעזור לי ולתת לי כיוון מה לעשות איתו?

פורסם
  • מחבר

אולי, אם תאמר מה אתה רוצה לעשות בדיוק.

מה שאני רוצה לעשות זה משהו די פשוט, אני רוצה לעשות מחשבון (השתמשתי ב WPF).

ואז, למשל כשלוחצים על +, אני רוצה לשמור את ה + במשתנה מסוג char וכשמכניסים את המספר השני ולוחצים על = אני רוצה למסור לו את ה char כדי שידע מה לעשות.(זה לא הקוד שהעתקתי לך,החלטתי לשנות אותו).

פורסם

תכתוב פונקציה נפרדת שעושה את מה שאתה רוצה, ורק תקרא לה באמצעות ה event של הכפתור.

בנוסף, בלי שום קשר, עדיף שתשתמש ב

()lblResult.Content.toString

במקום להשתמש ב cast

וגם עדיף(תלוי במקרה) שתשתמש ב

()Convert.toInt32

במקום ה Parse שלא מטפל ב null

פורסם

אם אתה משתמש ב WPF תיצור DependencyProperty ותשמור בו את התוצאה של החישוב,

ב XAML תעשה Binding למשתנה הזה.

כשלוחצים על =, תעשה את החישוב ותעדכן את המשנה. בגלל שיש binding התצוגה תתעדכן.

פורסם
  • מחבר

תכתוב פונקציה נפרדת שעושה את מה שאתה רוצה, ורק תקרא לה באמצעות ה event של הכפתור.

בנוסף, בלי שום קשר, עדיף שתשתמש בבמקום להשתמש ב cast

וגם עדיף(תלוי במקרה) שתשתמש בבמקום ה Parse שלא מטפל ב null

ניסיתי לכתוב פונקציה נפרדת ולזמן אותה ב event אבל זה רושם לי את אותה הבעיה.

והעניין של ה double אני לא חושב שזה כל כך משנה כי אין אפשרות של null.

המשתמש לא מכניס את הטקסט אלא לוחץ על כפתורי המספרים.

פורסם

התכוונתי באופן כללי, סתם שתדע, ולא שמתי לב שהמשתנה שלך מסוג דאבל, אז כמובן שזה צריך להיות

Convert.toDouble

בנוגע לבעיה שלך, קשה לעזור בלי לראות את הקוד המעודכן.

פורסם
  • מחבר

אם אתה משתמש ב WPF תיצור DependencyProperty ותשמור בו את התוצאה של החישוב,

ב XAML תעשה Binding למשתנה הזה.

כשלוחצים על =, תעשה את החישוב ותעדכן את המשנה. בגלל שיש binding התצוגה תתעדכן.

איך אני יוצר DependencyProperty

פורסם

מומלץ לקרוא את ההסבר של מיקרוסופט על מנגנון ה Dependency Properties:

http://msdn.microsoft.com/en-us/library/ms752914.aspx

יצירה של properties נעשת בצורה הבאה:

public static readonly DependencyProperty IsSpinningProperty = 
DependencyProperty.Register(
"IsSpinning", typeof(Boolean),

);
public bool IsSpinning
{
get { return (bool)GetValue(IsSpinningProperty); }
set { SetValue(IsSpinningProperty, value); }
}

כמובן שאפשר להכריז על Dependency properties רק במחלקות שיורשות מ DependencyObject.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים