मैं सारणी का उपयोग करके सामान्य ढेर को लागू कर रहा हूँ में सरणी का उपयोग कर। लेकिन मैं मिलता है त्रुटि के रूप में:कार्यान्वयन जेनेरिक ढेर #
प्रकार की अभिव्यक्ति के लिए [] के साथ अनुक्रमण लागू नहीं कर सकता 'टी'
लाइन पर:
data[SP] = data;
समस्या के समाधान के लिए?
Cannot apply indexing to an expression of type 'T'
मैं भी मेरी स्थिति में यहां एक ही फिक्स को लागू करना चाहिए: भी मैं इस लिंक की जाँच की? या क्या कोई अन्य बेहतरीन विकल्प उपलब्ध है?
public class MyStack<T>
{
private T[] data { get; set; }
private int SP { get; set; }
private int Capacity { get; set; }
public MyStack(int capacity)
{
this.Capacity = capacity;
data = new T[Capacity];
SP = -1;
// it works here, dont know why??? ;)
data[0] = default(T);
}
public void Push(T data)
{
++SP;
if(SP>=Capacity) growArray();
// This is where i get error.
data[SP] = data;
}
public T Pop()
{
if (SP < 0) throw new InvalidOperationException();
T value = data[SP];
data[SP] = default(T);
SP--;
return value;
}
public T Peak()
{
if (SP < 0) throw new InvalidOperationException();
return data[SP];
}
private void growArray()
{
throw new NotImplementedException();
}
}
अग्रिम धन्यवाद:
यहाँ मेरी कोड है।
क्या कोई विशिष्ट कारण है जिसे आप स्टैक लागू कर रहे हैं? यदि नहीं, तो आप सिर्फ इस्तेमाल कर सकते हैं [ 'System.Collections.Generic.Stack'] (http://msdn.microsoft.com/en-us/library/3278tedw.aspx) –
Waldfee