أما في 21 شباط 2009 02:54 م، فقد تنهد سلوان الهلالي بارتياح وهو يرد:
أعتقدت إن Item كلمة محجوزة أو إسم مستخدم لشيء ما في دوت نت...int Item = 5;
If your class is named 'Item' and has an indexer declared as this,
you may get this error. A default indexer is given the name 'Item'
in the emitted code, creating the conflict.
في 21 فبراير 2009 08:08 م، غمغم عبد اللطيف حاجي علي باستغراب قائلاً:
لقد جهزت أكثر من عشرة أسئلة ولا أطيق الانتظار حتى تجاوبوا على هذا السؤال لأعطيكم الذي بعدهوفي 21 شباط 2009 11:12 م، ظهر شبح ابتسامة على وجه انس وهو يقول:
حسنا لقد وجدت الخلل لكن قمت بالبحث في غوغل ... ساطرح الحل هنا و ادا اعتبرت الطريقة غشا ساقوم بلغائهأما في 21 شباط 2009 11:12 م، فقد تنهد انس بارتياح وهو يرد:
بعبارة اخرى لقد قمت بلقتراف الدنب نفسه ....في 21 شباط 2009 11:12 م، غمغم انس باستغراب قائلاً:
الكلاس اسمه Item ... و لديك المؤشر this ك indexer .... (يا عيني عن الترجمة )اظنها الجواب الصحيح .int this[int index]
{
get { return 0; }
}
// Some other place
Test t = new Test();
int i = t[5];
int Item(int index)
{
return 0;
}
// Some other place
Test t = new Test();
int i = t.Item(5);
private int _MyProperty;
public int MyProperty
{
get { return _MyProperty; }
set { _MyProperty = value; }
}
// محاكاة get من MyProperty
public int get_MyProperty()
{
return _MyProperty;
}
// محاكاة set من MyProperty
public void set_MyProperty(int value)
{
_MyProperty = value;
}
// في مكان آخر
Test t = new Test();
// السطر الأول يحاكى بالثاني
t.MyProperty = 5;
t.set_MyProperty(5);
int i;
// نفس الشي
i = t.MyProperty;
i = t.get_MyProperty();
#include
#include
#include
template
void MinMax(const std::vector& arr, T& min, T& max)
{
typedef std::vector::const_iterator iterator;
min = std::numeric_limits::max();
max = std::numeric_limits::min();
for (iterator itr=arr.begin();itr!=arr.end();itr++)
{
if (*itr < min) min = *itr;
if (*itr > max) max = *itr;
}
// Done!
}
void FormatMessage(const std::vector& arr)
{
int min, max;
MinMax(arr, min, max);
wprintf(TEXT("Minimum of array is: %d\n")
TEXT("Maximum of array is: %d\n"), min, max);
}
#include
int main()
{
void FormatMessage(const std::vector& arr); // Defined in UserOutput.cpp
std::vector myArray;
myArray.push_back(11);
myArray.push_back(8);
myArray.push_back(6);
myArray.push_back(3);
myArray.push_back(0);
FormatMessage(myArray);
}
/Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "UNICODE" /FD /W0 /EHsc /MT
1>Compiling...
1>UserOutput.cpp
1>.\UserOutput.cpp(9) : error C2589: '(' : illegal token on right side of '::'
1> .\UserOutput.cpp(22) : see reference to function template instantiation
'void MinMax(const std::vector<_Ty> &,T &,T &)' being compiled
1> with
1> [
1> _Ty=int,
1> T=int
1> ]
1>.\UserOutput.cpp(9) : error C2059: syntax error : '::'
1>.\UserOutput.cpp(10) : error C2589: '(' : illegal token on right side of '::'
1>.\UserOutput.cpp(10) : error C2059: syntax error : '::'
#undef min
#undef max
template
void MinMax(const std::vector& arr, T& min, T& max)
{
typedef std::vector::const_iterator iterator;
min = std::numeric_limits::max();
max = std::numeric_limits::min();
for (iterator itr=arr.begin();itr!=arr.end();itr++)
{
if (*itr < min) min = *itr;
if (*itr > max) max = *itr;
}
// Done!
}
void FormatMessage(const std::vector& arr)
{
int min, max;
MinMax(arr, min, max);
wprintf(TEXT("Minimum of array is: %d\n")
TEXT("Maximum of array is: %d\n"), min, max);
}
#define min
#define max
#define NOMINMAX
1>Test.obj : error LNK2019: unresolved external symbol
"void __cdecl FormatMessage(class std::vector<int,class> > const &)"
(?FormatMessage@@YAXABV?$vector@HV?$allocator@H@std@@@std@@@Z) referenced in function _main
وفي 23 شباط 2009 02:34 م، قال عبد اللطيف حاجي علي متحمساً:
قبل أن أعتبر هذا السؤال منتهياً وأتشدق بما أعرف كعادتي. هل يمكن لأحد أن يقول لي لماذا يعطي الـ code السابق (بعد تصحيحه باستخدام طريقة سلوان أو الشمري) عند ترجمته بنفس المحددات الخطأ التالي؟ مرة أخرى: كيف يمكن تصحيح الخطأ؟ أيضاً ماذا يعني هذا الخطأ بالضبط؟TEXT("...")
L"..."
#define __TEXT(quote) L##quote