2013-06-29 3 views
-1

Мой вопрос в том, что. У меня есть школьное задание, которое требует от меня добавления нового метода в данный связанный класс ссылок, и мне не разрешено вносить какие-либо изменения в мой текущий класс связанных списковКак добавить конкретный метод в текущий класс

iii. RemoveParcelAtPosition(int n): Этот метод удалит узел в позиции n в связанном списке. Предположим, что первый узел связанного списка имеет номер позиции 1, а второй узел имеет номер позиции 2 и т. Д. И так далее.

class LinkedList 
{ 
    private Node head; // first node in the linked list 
    private int count; 

    public int Count 
    { 
     get { return count; } 
     set { count = value; } 
    } 

    public Node Head 
    { 
     get { return head; } 
    } 
    public LinkedList() 
    { 
     head = null; // creates an empty linked list 
     count = 0; 
    } 

public void AddFront(int n) 
{ 
     Node newNode = new Node(n); 
     newNode.Link = head; 
     head = newNode; 
     count++; 

} 

    public void DeleteFront() 
    { 
     if (count > 0) 
     { 
      Node temp = head; 
      head = temp.Link; 
      temp = null; 
      count--; 
     } 
    } 


} 
+1

Подождите, что? Как добавить метод в класс без его изменения? Может быть, вам просто не разрешено менять другие методы? – dlev

+1

Объявите класс как «partial» – Paritosh

ответ

3

Использование наследования. Создайте новый класс с помощью требуемого метода. наследует класс в вашем классе Linkedlist.

+0

Я вижу! Большое спасибо! –

2

Вероятно, вы должны использовать extension methods

Что-то вроде этого

namespace LinkedListExtension 
{ 
    public static class MyExtensions 
    { 
     public static void RemoveParcelAtPosition(this LinkedList, int n) 
     { 
      // remove here 
     } 
    } 
} 

и этот вызов метода будет выглядеть следующим образом:

_yourLinkedList.RemoveParcelAtPosition(position); 
+0

Простите, я все еще учусь. Не знаю, что такое расширение. –

+0

прочитайте [link] (http://msdn.microsoft.com/en-us/library/vstudio/bb383977.aspx) –

+0

Сделаем, спасибо большое! –