自动更新号码

本文关键字:号码 更新 | 更新日期: 2023-09-27 18:16:28

嗨,我使用c# 2010 Windows窗体应用程序,对于我的项目,我想知道我如何能使一个变量自动增加,当我添加一个新成员也我除了当我删除任何成员重置成员的数量将减少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; }
    }
}

自动更新号码

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

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

我假设AddressID是基于1的

添加新成员时,使用number of elements in list作为new AddressID,然后向列表中添加新成员。

删除一个或多个成员后,按AddressID对列表进行排序,对于列表中的每个成员,他的新AddressID是他在列表中的位置加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; }
}

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

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

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();

你有一组地址,你想要自动计数。

方法如下:

在你的Addresses类中添加一个名为Count的公共属性

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

和每次用户创建一个新地址或删除一个地址时,你应该引发该事件并设置count为count+1或count-1

您可以使用静态变量来实现这一点,该变量在每次生成新类时递增。

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,直到它们被插入数据库。