首页 / C# / 如何区分对象类型c#
如何区分对象类型c#
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何区分对象类型c#,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2961字,纯文字阅读大概需要5分钟。
内容图文
![如何区分对象类型c#](/upload/InfoBanner/zyjiaocheng/797/037a090781f845ac9736ea969365c738.jpg)
我正在创建一个篮球WPF应用程序,显示一个HomeTeam和一个AwayTeam.
我创建了一个Player对象,在主窗口中我为home(HomePlayersList)和客队(AwayPlayersList)创建了ObservableCollection的玩家对象.我在播放器对象上使用了INotifyPropertyChanged接口,所以当IsInGame bool为true时,播放器会被添加到两个ObservableCollection< Player>之一中.取决于计数. (如果列表一个ObservableCollection< Player> HomeTeam或ObservableCollection< Player> AwayTeam计数为5,则其余部分将添加到替换列表ObservableCollection< Team> HomeSub或ObservableCollection< Team> AwaySub.)
但我试图区分玩家是在主场还是在客队中,并且根据玩家所在的列表,玩家将被添加到新的主页或离开列表中.
public static ObservableCollection<Player> HomePlayersList;
public static ObservableCollection<Player> AwayPlayersList;
public static ObservableCollection<Player> HomeTeam = new ObservableCollection<Player>();
public static ObservableCollection<Player> AwayTeam = new ObservableCollection<Player>();
public static ObservableCollection<Player> HomeSub = new ObservableCollection<Player>();
public static ObservableCollection<Player> AwaySub = new ObservableCollection<Player>();
public static int HomeSubCount = 7;
public class Player: INotifyPropertyChanged
{
public static bool IsHome = true;
private static int TotalSelected = 1;
public string Id { get; set; } //player ID
public string FirstName { get; set; } //player first name
public string SecondName { get; set; } //player second name
public string KnownName { get; set; } //player known name
public string Position { get; set; } //player position
public string Number { get; set; } //player number
public bool isInGame;
public bool IsInGame
{
get { return isInGame; }
set
{
if (value != isInGame)
{
isInGame = value;
if (isInGame)
{
OnPropertyChanged("IsInGame", true);
}
else
{
OnPropertyChanged("IsInGame", false);
}
}
}
}
protected void OnPropertyChanged(PropertyChangedEventArgs e)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
handler(this, e);
}
protected void OnPropertyChanged(string propertyName, bool state)
{
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
if (state)
{
if (TotalSelected > 5 + MainWindow.HomeSubCount)
{
this.IsInGame = false;
return;
}
if (MainWindow.HomeTeam.Count < 5)
MainWindow.HomeTeam.Add(this);
else
{
if (MainWindow.HomeSub.Count < MainWindow.HomeSubCount)
{
MainWindow.HomeSub.Add(this);
}
}
TotalSelected++;
}
else
{
if (SearchForMe(MainWindow.HomeTeam) != null)
{
MainWindow.HomeTeam.Remove(SearchForMe(MainWindow.HomeTeam));
TotalSelected--;
return;
}
if (SearchForMe(MainWindow.HomeSub) != null)
{
MainWindow.HomeSub.Remove(SearchForMe(MainWindow.HomeSub));
TotalSelected--;
return;
}
}
}
private Team SearchForMe(ObservableCollection<Team> OCT)
{
return OCT.Where(i => i.Number == this.Number).SingleOrDefault();
}
public event PropertyChangedEventHandler PropertyChanged;`enter code here`
}
解决方法:
在Player类中粘贴一个属性
ObservableCollection<Player> CurrnetIn { get; set; }
如果在某个集合中添加播放器,请设置此属性.或者我误解了这个问题.
内容总结
以上是互联网集市为您收集整理的如何区分对象类型c#全部内容,希望文章能够帮你解决如何区分对象类型c#所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。