Портирование массивов структур Matlab на C # - PullRequest
1 голос
/ 13 октября 2011

У меня есть несколько массивов структур, перечисленных ниже, которые я хотел бы перенести на C #.Это часть большого проекта.Как я могу легко добиться чего-то подобного в C #?Такие как группировка переменных?Я знаю, что класс будет делать, но чтобы сделать что-то подобное, Id, возможно, придется создать несколько вложенных классов?

1 Ответ

2 голосов
/ 13 октября 2011

Я ничего не знаю о matlab, но на основании того, что вы показали выше, у вас может быть библиотека классов с пространством имен robot.task.mapbuilding, но для этого потребуются некоторые классы и вложенные, как вы говорите.Например, класс exploration, который содержит класс lists:

namespace robot.task.mapBuilding
{
    public class lists
    {
        public lists()
        {
            _canRequestNewTask= true;
        }
        private bool _canRequestNewTask;
        private string _requestNewTask;
        private string _receivedNewTask;
        public bool CanRequestNewTask {get{return _canRequestNewTask;}set{_canRequestNewTask=value;}}
        public string RequestNewTask{get{return _requestNewTask;}set{_requestNewTask=value;}}
        public string ReceivedNewTask {get{return _receivedNewTask;}set{_receivedNewTask=value;}}
    }

    public class exploration
    {
        public exploration()
        {
            isExploring = false;
            initialiseAreaExploration = true;
            isInExplorationArea = -1;
        }
        private bool _isExploring;
        private bool _initialiseAreaExploration;
        private bool _isInExplorationArea;
        private lists _lists;

        public bool IsExploring {get{return _isExploring;} set{_isExploring = value;}}
        public bool InitialiseAreaExploration{get{return _initialiseAreaExploration;}set{_initialiseAreaExploration=value;}}
        public bool IsInExplorationArea {get{return _isInExplorationArea;}set{_isInExplorationArea=value;}}
        public lists Lists {get{return _lists;}set{_lists=value;}}
   }
}

edit

Если вас не беспокоит проверка или инициализация значения в конструкциитогда это может быть сведено к следующему:

namespace robot.task.mapBuilding
{
    public class lists
    {
        public bool CanRequestNewTask {}
        public string RequestNewTask {}
        public string ReceivedNewTask {}
    }

    public class exploration
    {
        public bool IsExploring {}
        public bool InitialiseAreaExploration {}
        public bool IsInExplorationArea {}
        public lists Lists {}
    }
}

Обратите внимание, что я придерживался соглашения о присвоении имен свойств, начинающегося с прописных букв, хотя я не делал этого с классами (которые, я полагаю, должен был иметьсделано действительно).

...