2013-05-31 3 views
0

Привет, я использую приложение Windows Forms от C# 2010, и для моего проекта я хочу знать, как я могу сделать прирост переменной автоматически, когда добавляю новый член, кроме того, я исключаю, когда я удаляю любой член числом сброс членов будет уменьшаться на 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; } 
    } 
} 
+2

Как вы можете добавлять и удалять элементы? –

+0

Где эта переменная в коде ... та, которую вы хотите увеличить/уменьшить? А какой «член» вы добавляете/удаляете? – DonBoitnott

+0

Я использую список, поэтому, когда я нажал, он добавит информацию в мой список. –

ответ

1

Хорошо, теперь я знаю, чего вы хотите.

Вы должны использовать List<Address> и сохранить всех участников в списке.

Я предполагаю, что AddressID основан на 1.

При добавлении нового члена используйте количество элементов в списке в качестве нового AddressID, а затем добавьте новый элемент в список.

После удаления члена или членов, отсортируйте список по адресу AddressID и для каждого члена в списке, его новым AddressID является его позиция в списке, увеличивающемся на единицу.

+0

давайте предположим, что я добавлю 5 членов и я в в какой-то точке удалить член номер 3, так что идентификатор адреса 5-го члена 5, который будет изменен на номер 4 ..... извините за мой плохой английский bro –

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

извините, бросьте это не то, что я имею в виду –

+0

, предположим, что я добавляю 5 членов, а я в какой-то момент удаляю номер участника 3, так что адрес ID члена 5, который будет 5, будет изменен на номер 4 ..... извините для моего плохого английского брата –

+0

Итак, вы хотите сохранить семя? Тип идентичности для каждого «Адреса»? –

0

Добавить события с именами, например, AddressBookItemAdded и AddressBookItemRemoved, в свою адресную книгу и запускать их при каждом добавлении/удалении любого контакта. В случае, когда события этих событий просто увеличивают/уменьшают количество контактов.

проверить это, например: http://msdn.microsoft.com/en-us/library/aa645739%28v=vs.71%29.aspx

0

Base ваш 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(); 
0

Так у вас есть класс адресов, и вы хотите, чтобы сосчитать их автоматически.

Вот как это сделать:

Добавить публичное свойство с именем «Граф» в классе адресов.

Добавить событие под названием: NumChanged для класса.

и каждый раз, когда пользователь класса создает новый адрес или удаляет адрес, который вы должны поднять это событие и установить счетчик для подсчета + 1 или кол-1

+0

пусть догадается, что я добавлю 5 членов, а я в какой-то момент удаляю номер члена 3, так что это addressID члена 5, который 5 будет изменен на номер 4 ..... извините за мой плохой английский bro –

+1

OK. Суть в том, как вы добавляете 5 членов? Вам необходимо собрать коллекцию или массив внутри вашего класса, чтобы содержать этих членов. Например, у вас есть массив адресов внутри вашего класса. Затем вы реализуете метод ADD для своего класса. Затем пользователь класса создает новый экземпляр класса Addresses и с помощью ADD-метода добавляет 5 членов к этому внутреннему массиву. В этом случае вы также можете иметь публичное свойство Count, которое увеличивается каждый раз, когда вы добавляете участника. чтобы иметь возможность удалять внутренние элементы, а не массив, вы должны использовать коллекцию, например объект List. Логика такая же. –

+0

@S Нэш я понимаю, что вы говорите, что нет никакого готового инструмента в C#, чтобы сделать это, я должен сделать свой собственный? –

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

Иногда лучше просто предоставить базу данных сделать это самостоятельно. Идентификатор 0 для новых элементов, пока они не будут вставлены в базу данных.

Смежные вопросы