Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2015, 06:25   #1
accncc
Пользователь
 
Регистрация: 20.05.2015
Сообщений: 20
По умолчанию Указать функцию в List и вызвать ее при переборе

Добрый день! Я не могу понять как указать функцию в массиве, и главное как ее потом вызывать, при переборе массива?

Пример массива:


Код:
public class SomeClassName
{
    public string Name { get; set; }
    public int Size { get; set; }
    public int Position { get; set; }
    public string Text { get; set; }
}



public class Array{

	void test_function() { Console.WriteLine( "test_function" }
	void test_fctionun2() { Console.WriteLine( "test_function2" }

	void Start () {

        List<SomeClassName> yourArray = new List<SomeClassName>();

        yourArray.Add(new SomeClassName
        {
            Name = "abc",
            Size = 123,
            Position = 123,
            Text = "abc"
        });
        yourArray.Add(new SomeClassName
        {
            Name = "abc2",
            Size = 1232,
            Position = 1232,
            Text = "abc2"
        });
	}

        for (int i = 0; i < yourArray.Count; i++)
        {
            Console.WriteLine( "name: " + yourArray[i].Name );
        }
}





вот так примерно делал на javascript

Код:
       yourArray.Add(new SomeClassName
        {
            Name = "abc",
            Size = 123,
            Position = 123,
            fun=  test_fctionun2,
            Text = "abc"
        });

        for (int i = 0; i < yourArray.Count; i++)
        {
            yourArray[i].fun() // И функция "test_fctionun2" вызывалась! 
        }
Как это реализовать на С# ?
accncc вне форума Ответить с цитированием
Старый 20.05.2015, 07:51   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

по Джаваскриптй у вас метод у класса SomeClassName должен быть
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.05.2015, 08:21   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну можно например сделать в классе свойство типа Action (void и без параметров), Action<T1, T2, ...> (с параметрами) или Func<T1, T2, ..., TR> (с возвращаемым значением), тогда и получится так.

Только не факт, что вам это вообще надо, скорее всего вы из C# пытаетесь сделать JS.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.05.2015, 10:46   #4
accncc
Пользователь
 
Регистрация: 20.05.2015
Сообщений: 20
По умолчанию

С этим разобрался) через Action

но теперь у меня остался главный вопрос:
как массив такого типа перевести в json строку?
accncc вне форума Ответить с цитированием
Старый 20.05.2015, 11:02   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Какого такого? Каким образом вы функцию в json переведете?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.05.2015, 11:07   #6
accncc
Пользователь
 
Регистрация: 20.05.2015
Сообщений: 20
По умолчанию

создали массив
Код:
        List<SomeClassName> yourArray = new List<SomeClassName>();
добавили в массив
Код:
        yourArray.Add(new SomeClassName
        {
            Name = "abc",
            Size = 123,
            Position = 123,
            Text = "abc"
        });
        yourArray.Add(new SomeClassName
        {
            Name = "abc2",
            Size = 1232,
            Position = 1232,
            Text = "abc2"
        });

как мне yourArray перевести в json стандартными методами C# если они есть)
accncc вне форума Ответить с цитированием
Старый 20.05.2015, 11:10   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Берите (лучше через NuGet) http://www.newtonsoft.com/json и переводите.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.05.2015, 11:20   #8
accncc
Пользователь
 
Регистрация: 20.05.2015
Сообщений: 20
По умолчанию

Спасибо, но мне нужен стандартный вариант, потому так как я используй unity3d, и там нужно избегать любые, сторонние решения(
Может есть другой вариант?

А есть ли способы вывести yourArray массив в консол? в виде строки?

Последний раз редактировалось accncc; 20.05.2015 в 11:23.
accncc вне форума Ответить с цитированием
Старый 20.05.2015, 11:26   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

https://www.google.com/search?q=unity3d+json
http://stackoverflow.com/questions/2...ing-in-unity3d

Цитата:
А есть ли способы вывести yourArray массив в консол? в виде строки?
overrid'нуть метод ToString у того класса.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.05.2015, 11:35   #10
accncc
Пользователь
 
Регистрация: 20.05.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
https://www.google.com/search?q=unity3d+json
http://stackoverflow.com/questions/2...ing-in-unity3d
Я внимательно изучил гугл но там проблема в том что при экспорте в webGL нельзя использовать JsonSerializer((((

overrid'нуть метод ToString у того класса.
можно подробней про: overrid'нуть метод ToString у того класса

Код:
Console.WriteLine( (new Array().yourArray).ToString())
так но нечего не вышло(

Последний раз редактировалось accncc; 20.05.2015 в 11:41.
accncc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вызвать функцию при закрытии окна(окно чужое") karaulov Общие вопросы C/C++ 3 21.03.2013 15:30
Как вызвать функцию.. Аделинкка Общие вопросы Delphi 10 21.12.2012 10:47
Не получается вызвать функцию! Ce4kok Общие вопросы Delphi 5 25.05.2011 22:27
Convert error при переборе Horus92 Помощь студентам 1 17.08.2010 22:07
Проблема при переборе списка Spice Общие вопросы C/C++ 3 22.07.2009 08:22