Поделиться через


Ошибка компилятора CS1546

Обновлен: Ноябрь 2007

Сообщение об ошибке

Свойство, индексатор или событие 'property' не поддерживается этим языком; попытайтесь вызвать метод доступа к свойствам 'accessor' напрямую
Property, indexer, or event 'property' is not supported by the language; try directly calling accessor method 'accessor'

Данный код использующий объект, имеющий индексированное свойство по умолчанию и пытающийся использовать индексированный синтаксис. Для устранения этой ошибки вызывайте метод доступа к свойству. Дополнительные сведения об индексаторах и свойствах см. в разделе Индексаторы (руководство по программированию в C#).

Следующий пример проводит к генерированию ошибки CS1546.

Пример

Этот пример кода состоит из файла с расширением CPP, компилируемого в файл с расширением DLL, и файла с расширением CS, использующего этот файл с расширением DLL. Следующий код предназначен для файла с расширением DLL и определяет свойство, доступ к которому будет осуществляться кодом, содержащимся в файле с расширением CS:

// CPP1546.cpp
// compile with: /clr /LD
using namespace System;
public ref class MCPP
{
public:
    property int Prop [int,int]
    {
        int get( int i, int b )
        {
            return i;
        }
    }
};

Файл кода на языке C#.

// CS1546.cs
// compile with: /r:CPP1546.dll 
using System;
public class Test
{
    public static void Main()
    {
        int i = 0;
        MCPP mcpp = new MCPP();
        i = mcpp.Prop(1,1); // CS1546
        // Try the following line instead:
        // i = mcpp.get_Prop(1,1);
    }
}