Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自动更新号码_C#_Numbers - Fatal编程技术网

C# 自动更新号码

C# 自动更新号码,c#,numbers,C#,Numbers,您好,我正在使用C#2010 Windows窗体应用程序,对于我的项目,我想知道当我添加一个新成员时,如何自动进行可变增量。我也希望当我删除任何成员时,重置成员的数量将减少1。我希望我能为您澄清我的问题,并感谢您的任何帮助……对不起,我的英语不好 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace AddressBookInC { class Ad

您好,我正在使用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> 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

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

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

我假设AddressID是基于1的

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


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

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


例如,选中此项:

地址
集合基于其中一个内置集合类(如
列表
)并使用其固有的
计数
属性

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; }
    }
}

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

以下是如何做到这一点:

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

将名为: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。

如何添加和删除成员?此变量在代码中的何处?要递增/递减的变量?什么“成员”你在添加/删除吗?我正在使用一个列表,所以当我按下add时,它会将信息添加到我的列表中为什么不使用
列表
的内置
计数
属性?@DonBoitnott AddressIDlet猜测我添加了5个成员,我在某个点上删除了成员编号3,那么成员5的地址ID将变为编号对不起,我的英语很差。关键是如何添加5个成员?类中需要某种集合或数组来包含这些成员。一个例子是在类中有一个地址数组。然后为类实现ADD方法。然后类的用户创建Addresses类的新实例,并使用ADD方法向该内部数组添加5个成员。在这种情况下,您还可以拥有一个名为Count的公共属性,该属性在每次添加成员时都会上升。为了能够删除内部成员,而不是数组,您应该使用集合,例如列表对象。逻辑是一样的。@S Nash我从你的谈话中了解到,c语言中没有现成的工具。要做到这一点,我必须自己制作一个工具???不,没有工具可以为你做任何事情。您需要编写代码。另一个建议的答案是使用列表。即使在这种情况下,您也需要编写更多代码:1:创建地址类2:每当用户需要新地址时,使用列表的添加方法将其添加到列表中。对不起,兄弟,这不是我的意思让我猜我添加了5个成员,我在某个时候删除了成员编号3,因此成员编号5的地址ID将更改为编号4…..对不起,我的英语不好,兄弟,你想保留种子吗?每个
地址
?@BassamBadr的类似标识在这种情况下,您仍然可以使用
.Count
设置列表中最后一个
地址
的地址ID。如果删除项目编号3,则会影响项目。其余的人已经有了地址集。@BassamBadr如果你让数据库或可能的
EF
来处理这个问题也会好得多。让我们猜测一下,我添加了5个成员,并且在某个时候删除了3号成员,所以5号成员的地址ID将改为4号…..对不起,我的英语不好,兄弟
 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();
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; }
    }
}