![](/img/trans.png)
[英]Same Variable Names - 2 Different Classes - How To Copy Values From One To Another - Reflection - C#
[英]How to use variable values from different classes WPF C#
我需要一些幫助來使用屬於另一個類中的一個類的變量。
我有包含Weeks
和StartDate
屬性的Semester
類。
在另一個類CalcDisplay
我有方法CalculateStudyHours
,它應該根據Semester
類的Weeks
和StartDate
屬性計算學習時間。
我在 WPF 類中創建了一個Semester
對象,並且正在傳遞用戶提供的構造函數weeks
和startDate
值。
private void btnEnter_Click(object sender, RoutedEventArgs e)
{
int weeks = int.Parse(txtbWeeks.Text);
DateTime startDate = (DateTime)dteDate.SelectedDate;
Semester s = new Semester(weeks, startDate);
ModuleListHandler.semesterDetails.Add(s);
MessageBox.Show("Semester details added successfully");
btnNext.Visibility = Visibility.Hidden;
}
Semester
班
namespace TimeManagementClassLibrary
{
public class Semester
{
public int Weeks { get; set; }
public DateTime StartDate { get; set; }
//default constructor
public Semester()
{
}
public Semester(int weeks, DateTime startdate)
{
Weeks = weeks;
StartDate = startdate;
}
}
}
CalcDisplay
類
public class CalcDisplay
{
//Method calculating study hours
public double CalculateStudyHours()
{
return (credits * 10 / weeks) - classHours;
}
}
將credits
和weeks
參數傳遞給CalcDisplay
類的最有效方法是什么?
除了我的評論,讓我們假設你有 3 個類:
public class Semester
{
public int Weeks { get; set; }
public Semester() { }
public Semester(int weeks)
{
Weeks = weeks;
}
}
public class Credit
{
public int Credits { get; set; }
public Credit() { }
public Credit(int credits)
{
Credits = credits;
}
}
public class SomeClass
{
public int ClassHours { get; set; }
public SomeClass() { }
public SomeClass(int classHours)
{
ClassHours = classHours;
}
}
您顯然會創建它們的實例並以某種方式設置/計算它的Weeks
、 Credits
、 ClassHours
值。
然后你使用這些值作為參數傳遞給另一個類的某個方法:
public class CalcDisplay
{
// May be static as uses passed in arguments values, non class members
public static double CalculateStudyHours(int credits, int weeks, int classHours)
{
return (credits * 10 / weeks) - classHours;
}
}
並從某個地方傳遞它們:
private void btnEnter_Click(object sender, RoutedEventArgs e)
{
// Get values in some way
int weeks = int.Parse(txtbWeeks.Text);
int credits = int.Parse(txtbCredits.Text);
int classHours = int.Parse(txtbClassHours.Text);
// Create your instances
Semester s = new Semester(weeks);
Credit c = new Credit(credits);
SomeClass sc = new SomeClass(classHours);
// Then pass it's properties values
double result = CalcDisplay.CalculateStudyHours(c.Credits, s.Weeks, sc.ClassHours);
}
或者CalcDisplay
類可能有自己的字段/屬性,您可以通過其構造函數進行設置:
public class CalcDisplay
{
private int credits;
private int weeks;
private int classHours;
// Constructor
public CalcDisplay() {}
public CalcDisplay(int credits, int weeks, int classHours)
{
this.credits = credits;
this.weeks = weeks;
this.classHours = classHours;
}
// Non-static as we use class members
public double CalculateStudyHours()
{
return (credits * 10 / weeks) - classHours;
}
}
private void btnEnter_Click(object sender, RoutedEventArgs e)
{
// ... same as upper
CalcDisplay = new CalcDisplay(c.Credits, s.Weeks, sc.ClassHours);
double result = c.CalculateStudyHours();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.