0

嗨,我正在使用 C# 2010 Windows Forms 应用程序,对于我的项目,我想知道如何在添加新成员时自动使变量递增,此外,当我删除任何成员时,重置成员的数量将减少 1 我希望我能帮您弄清楚我的问题并感谢您的帮助......对不起我的英语不好

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AddressBookInC
{
    class Addresses
    {
        public int AddressID { get; set; }
        public String FirstName { get; set; }
        public String LastName { get; set; }
        public String AddressEmail { get; set; }
        public String PhoneNumber { get; set; }
    }
}
4

6 回答 6

1

好吧,为什么不将它们放在 中List<Address>,例如:

List<Address> addresses = new List<Address>();

addresses.Add(new Address());
addresses.Add(new Address());

Console.WriteLine(addresses.Count); // now gives you Count of 2

addresses.RemoveAt(0);

Console.WriteLine(addresses.Count); // now gives you Count of 1

这是你的Address课:

class Address
{
    public int AddressID { get; set; }
    public String FirstName { get; set; }
    public String LastName { get; set; }
    public String AddressEmail { get; set; }
    public String PhoneNumber { get; set; }
}
于 2013-05-31T12:57:39.870 回答
1

好的,现在我知道你想要什么了。

您应该使用List<Address>并保留列表中的所有成员。

我假设 AddressID 是基于 1 的。

添加新成员时,使用列表中的元素数作为新的 AddressID,然后将新成员添加到列表中。

删除一个或多个成员后,按 AddressID 对列表进行排序,对于列表中的每个成员,他的新 AddressID 是他在列表中的位置加一。

于 2013-05-31T12:59:05.253 回答
0

将您的Addresses集合基于内置集合类之一(如List)并使用它的内在Count属性。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AddressBookInC
{
    public class Addresses: List<Address> { }
    public class Address
    {
        public int AddressID { get; set; }
        public String FirstName { get; set; }
        public String LastName { get; set; }
        public String AddressEmail { get; set; }
        public String PhoneNumber { get; set; }
    }
}

-- 某处的客户端代码

 var myAddresses = new Addresses();
 myAddresses.Add(new Address{AddressId = 1, FirstName= "Bob", etc. });
 myAddresses.Add(new Address{AddressId = 2, FirstName= "Dave", etc. });
 myAddresses.Add(new Address{AddressId = 3, FirstName= "Al", etc. });

 int count = myAddresses.Count();
于 2013-05-31T13:00:11.710 回答
0

所以你有一类地址,你想自动计算它们。

这是如何做到的:

将名为“Count”的公共属性添加到您的 Addresses 类。

向类添加一个名为:NumChanged 的​​事件。

并且每次类用户创建一个新地址或删除一个地址时,您应该引发该事件并将计数设置为 count+1 或 count-1

于 2013-05-31T13:01:31.720 回答
0

您可以使用每次生成新类时递增的静态变量来执行此操作。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AddressBookInC
{
    class Addresses
    {
        private static int _incrementId = 0;

        public Addresses()
        {
            AddressID = _incrementId++;
        }

        public int AddressID { get; set; }
        public String FirstName { get; set; }
        public String LastName { get; set; }
        public String AddressEmail { get; set; }
        public String PhoneNumber { get; set; }
    }
}

有时最好让数据库自己做。新项目的 ID 为 0,直到它们被插入到数据库中。

于 2013-05-31T14:27:54.733 回答
0

添加事件,例如名称AddressBookItemAddedAddressBookItemRemoved地址簿,并在您添加/删除任何联系人时触发它们。在这些事件的 eventHandlers 中,只需增加/减少联系人的数量。

例如检查这个:http: //msdn.microsoft.com/en-us/library/aa645739%28v=vs.71%29.aspx

于 2013-05-31T12:59:30.877 回答