Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Структура типа распределения по интервалам 
:(
    Опции темы
koder
  Дата 7.12.2007, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 30.4.2005
Где: Moscow

Репутация: нет
Всего: 2



а если вот такую структуру использовать это хороший стиль?

Код

struct Range{
public float StartRange; //начальная частота
public float EndRange;   //конечная частота
public float StepRange;  //шаг сетки
public float ActualFreq; // фактич. частота
public float StartDisp; // распредление
public float EndDisp; // распредление
public float DiffDisp; // разница EndDisp - StartDisp;
public float TheorFreq; // теоретическая частота
public float DeviationFreq; //отклонение частот
public float WeighedSqDeviationFreq; // Взвешенный квадрат отклонения частот
//массив доступных фиксированных частот диапазона
}


--------------------
THE TRUTH IS OUT THERE
PM WWW ICQ   Вверх
stab
Дата 7.12.2007, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 7
Всего: 48



смотря для чего использовать..


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
mr_max
Дата 7.12.2007, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 7.12.2007

Репутация: нет
Всего: нет



Использовать на выходе функции, после чего когда мы получим на выход массив структуры, то выводим его в табличку эти значения.. ВОт как.
PM MAIL   Вверх
koder
Дата 7.12.2007, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 30.4.2005
Где: Moscow

Репутация: нет
Всего: 2



 smile 
--------------------
THE TRUTH IS OUT THERE
PM WWW ICQ   Вверх
stab
Дата 7.12.2007, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 7
Всего: 48



koder, кто это был? ))


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
tol05
Дата 7.12.2007, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 36
Всего: 170



ИМХО это очень плохой стиль. Структуры - типы, копируемые по значению и их нужно делать неизменяемыми. 
вариант 1:  поля - private и свойства только get
вариант 2: public поля, но readonly. 
А вместо того, чтобы изменять значения полей в структуре - лучше пересоздавать ее заново.


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
stab
Дата 7.12.2007, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 7
Всего: 48



.. пожалуй самая большая опасность - использование свойств с такими типами, каждое чтение любого поля структуры через свойство сводится к копированию всей структуры в "локальную переменную" с последующем чтением одного единственного поля. так что, структуры эффективны и оправданны для небольшого объёма данных.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
tol05
Дата 7.12.2007, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 36
Всего: 170



ну тогда я добавлю, что:
Первое. Структуры чаще всего создают для логической группировки данных, используемых во многих местах кода (и эта структура - не исключение, она ИМХО содержит настройки чего-то). Я предполагаю, что многие объекты программы будут иметь поля-экземпляры этой структуры. И все будет здорово, пока в какой-то момент не станет нужным будет поменять какое-нибудь поле структуры.
Вот и пришла асталависта программе... Я не говорю даже про синхронизацию записи/чтения между потоками, даже в однопоточном приложении поле поменяется только в одном экземпляре структуры (в том, через который осуществляется доступ к полю). А во всех остальных местах - нет...

Второе. Упаковка/распаковка структур при работе с коллекциями... Любыми, даже с полностью типизированным List<Range>. Тоже будет весело. 
Ну и еще кое-какие траблы могут быть ...  smile Но это уже из категорий редкостей. 

вот пример 
Код

public struct S
    {
        public int s1;

        public S(int i)
        {
            s1 = i;
        }
    }

    public class C
    {
        public int c1;

        public C(int i)
        {
            c1 = i;
        }
    }

    public class WorkClass
    {
        public C c;
        public S s;
    }

WorkClass test1 = new WorkClass();
WorkClass test2 = new WorkClass();

C c = new C(1);
S s = new S(2);

test1.s = s;
test2.s = s;
test1.c = c;
test2.c = c;

s.s1 = 10;
c.c1 = 10;
test1.s.s1 = 20;
test1.c.c1 = 20;

List<S> ls = new List<S>();
ls.AddRange(new S[] { test1.s, test2.s });
S newS = ls[0];
newS.s1 = 100;
S resultsS = ls[0];


Цитата(stab @  7.12.2007,  20:47 Найти цитируемый пост)
так что, структуры эффективны и оправданны для небольшого объёма данных
 но только на чтение


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0946 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.