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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Ламерские" вопросы, задаем здесь элементарные вопросы 
:(
    Опции темы
Xao
Дата 14.1.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

Это сообщение отредактировал(а) Xao - 14.1.2009, 21:03
PM MAIL   Вверх
EgoBrain
Дата 15.1.2009, 10:47 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Xao @ 14.1.2009,  21:01)
EgoBrain
в библиотеке делаешь какую-нить тестовую функцию, которая возвращает что-нить, например "REF_OK", либо возьми другую функции, возвращаемое значение которой ты будешь знать точно при определенных параметрах
потом в программе вызываешь эту функции в блоке try, если возвратилось "REF_OK" все норм, иначе сообщаешь пользователю, что не удалось подключиться к библиотеке
ну может есть какие-нить специализированные функции, но я их не знаю, т.к. недавно начал углубленно учить язык

Чтобы вызвать функцию из моей бибилиотеки необходимо подключить эту бибилиотеку, иначе компилятор выдаст ошибку и не будет компилировать, а если удалить бибилиотеку после успешной компиляции, то вызов функции в блоке трай кэтч вызывает исключение времени исполнения и не перехватывается. Пробовал "затраить" создание экземпляра класса:
Код

...
try
{
    SomeClass class = new SomeClass();
}
catch
{

}
...

не получилось.
PM MAIL ICQ Skype   Вверх
Xao
Дата 16.1.2009, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



EgoBrain
попробуй сделать так:
Код

using(SomeClass class = new SomeClass())
{
...
...
}


или можешь попробовать обратиться к пространству имен в блоке try:
Код

using AliasToMyClass = NameSpaceDLL.SomeClass;




Это сообщение отредактировал(а) Xao - 16.1.2009, 20:11
PM MAIL   Вверх
Unsane
Дата 18.1.2009, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как поменять режим компиляции в C# Express (Debug/Release)?..
--------------------
Я дурак.. Этим и интересен!
PM MAIL   Вверх
Xao
Дата 18.1.2009, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Unsane
в свойствах проекта:
Debug - Configuration

У меня такой вопрос:
что такое дескриптор?
может кто-нить привести пример испльзования
PM MAIL   Вверх
Unsane
Дата 18.1.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Xao @ 18.1.2009,  15:11)
Unsane
в свойствах проекта:
Debug - Configuration

Вот тоже самое прочитал в мсдн.. До сих пор ищу.. Может не там?
user posted image
--------------------
Я дурак.. Этим и интересен!
PM MAIL   Вверх
nmn
Дата 18.1.2009, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Unsane @ 18.1.2009,  23:01)
Цитата(Xao @ 18.1.2009,  15:11)
Unsane
в свойствах проекта:
Debug - Configuration

Вот тоже самое прочитал в мсдн.. До сих пор ищу.. Может не там?
user posted image

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

Цитата(Xao @  18.1.2009,  15:11 Найти цитируемый пост)
что такое дескриптор?

это идентификатор обозначающий некий объект
например в win32, при создании окна, кисти и др ты получаешь дескриптор 

Это сообщение отредактировал(а) nmn - 18.1.2009, 23:10
PM Skype   Вверх
Xao
Дата 19.1.2009, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Unsane
1) в Solution Explorer правой кнопкой на Solution '......' (.. project[s])
выбери "Configuration Manager..."

2) Tools->Customize
в категории Debug команда Solitions Configuration, вынеси ее на панель куда-нибудь

3) View->Toolbars->Standart
настраиваешь панель Toolbar Options - > Solution Configuration


nmn
т.е. дескриптор это просто object, с методами и остальным от экземпляра какого-то класса?

а вот еще вопрос:
что делает yield return и когда его можно применять?
вот например простой пример:
Код

public IEnumerable NumberIterator()
{
  yield return 1;
  yield return 2;
  yield return 3;
{

что будет если я вызову эту функцию?
и обязательно ли функция должна быть типа IEnumarable?

Это сообщение отредактировал(а) Xao - 19.1.2009, 01:56
PM MAIL   Вверх
Xao
Дата 19.1.2009, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



в простом примере разобрался
yield return можно использовать только с конструкцией foreach
непривычно, когда можно продолжать исполнение после выхода из функции
PM MAIL   Вверх
nmn
Дата 19.1.2009, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Xao @  19.1.2009,  01:55 Найти цитируемый пост)
т.е. дескриптор это просто object, с методами и остальным от экземпляра какого-то класса?

не обязательно object, но может быть и им, это зависит от элементной базы с которой ты работаешь

http://www.google.com/search?hl=en&q=%...mp;aq=f&oq=
PM Skype   Вверх
Kolovorot
Дата 21.1.2009, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



При создании делегата, генерируется код с закрытым классом,производным от  System.MulticastDelegate и с именем делегата.

При создании делегата public delegate int BinaryaOp(int x, int y); генерируется следующий код:

Код

sealed class BinaryOp : System.MulticastDelegate
{
     public BinaryOp(object target, unit functionAddress);
     public int Invoke(int x, int y);
     public IAsyncResult BeginInvoke(int x, int y, AsyncCallBack cb, object state);
     public int EndInvoke(IAsyncResult result);
}


Как можно самому создать класс, который наследуется от MulticastDelegate? Пробывал как в примере не вышло.
--------------------
Никогда еще истина не повисала на руке безусловного. Фридрих Ницше. Так говорил Заратустра
PM MAIL   Вверх
Kolovorot
Дата 21.1.2009, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Где можно скачать ildasm.exe?
--------------------
Никогда еще истина не повисала на руке безусловного. Фридрих Ницше. Так говорил Заратустра
PM MAIL   Вверх
nmn
Дата 21.1.2009, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Kolovorot @ 21.1.2009,  20:51)
Где можно скачать ildasm.exe?

он входит в VS .NET
PM Skype   Вверх
Kolovorot
Дата 22.1.2009, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(nmn @ 21.1.2009,  22:03)
Цитата(Kolovorot @ 21.1.2009,  20:51)
Где можно скачать ildasm.exe?

он входит в VS .NET

Это я знаю. Только я устанавливал, наверное, как-то по-дурацки, на компьютере не нашел, а диск с которого устанавливал уже отдал.
NMN, благодарю за ildasm.
XaoБлагодарю буду разбраться.

Это сообщение отредактировал(а) Kolovorot - 24.1.2009, 14:26
--------------------
Никогда еще истина не повисала на руке безусловного. Фридрих Ницше. Так говорил Заратустра
PM MAIL   Вверх
Xao
Дата 23.1.2009, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Kolovorot

MSDN:
Цитата

MulticastDelegate является специальным классом. Компиляторы и иные средства могут быть производными от этого класса, но его нельзя наследовать явным образом. Это справедливо и для класса Delegate.


Код

[SerializableAttribute]      //Указывает на возможность сериализации класса. Данный класс не может наследоваться.
[ComVisibleAttribute(true)]
public abstract class MulticastDelegate : Delegate


Пример из мсдн:
Код

using System;

    // This class contains strings. It has a member method that
    // accepts a multicast delegate as a parameter and calls it.

    class HoldsStrings
    {
        // The following line causes the compiler to generate
        // a new delegate class named CheckAndPrintDelegate that
        // inherits from System.MulticastDelegate.
        public delegate void CheckAndPrintDelegate(string str);

        // An ArrayList that holds strings
        private System.Collections.ArrayList myStringArray = new System.Collections.ArrayList();

        // A method that adds more strings to the Collection
        public void addstring( string str) {
            myStringArray.Add(str);
        }

        // Iterate through the strings and invoke the method(s) that the delegate points to
        public void PrintAllQualified(CheckAndPrintDelegate myDelegate) {
            foreach (string str in myStringArray) {
                myDelegate(str);
            }
        }
    }   //end of class HoldsStrings

    // This class contains a few sample methods
    class StringFuncs
    {
        // This method prints a string that it is passed if the string starts with a vowel
        public static void ConStart(string str) {
            if (!(str[0]=='a'||str[0]=='e'||str[0]=='i'||str[0]=='o'||str[0]=='u'))
                Console.WriteLine(str);
        }

        // This method prints a string that it is passed if the string starts with a consonant
        public static void VowelStart(string str) {
            if ((str[0]=='a'||str[0]=='e'||str[0]=='i'||str[0]=='o'||str[0]=='u'))
                Console.WriteLine(str);
        }
    }

    // This class demonstrates using Delegates, including using the Remove and
    // Combine methods to create and modify delegate combinations.
    class Test
    {
        static public void Main()
        {
            // Declare the HoldsStrings class and add some strings
            HoldsStrings myHoldsStrings = new HoldsStrings();
            myHoldsStrings.addstring("This");
            myHoldsStrings.addstring("is");
            myHoldsStrings.addstring("a");
            myHoldsStrings.addstring("multicast");
            myHoldsStrings.addstring("delegate");
            myHoldsStrings.addstring("example");

            // Create two delegates individually using different methods
            HoldsStrings.CheckAndPrintDelegate ConStartDel =
                new HoldsStrings.CheckAndPrintDelegate(StringFuncs.ConStart);
            HoldsStrings.CheckAndPrintDelegate VowStartDel =
                new HoldsStrings.CheckAndPrintDelegate(StringFuncs.VowelStart);

            // Demonstrate that MulticastDelegates may store only one delegate
            Delegate [] DelegateList;

            // Returns an array of all delegates stored in the linked list of the
            // MulticastDelegate. In these cases the lists will hold only one (Multicast) delegate
            DelegateList = ConStartDel.GetInvocationList();
            Console.WriteLine("ConStartDel contains " + DelegateList.Length + " delegate(s).");
            DelegateList = VowStartDel.GetInvocationList();
            Console.WriteLine("ConStartVow contains " + DelegateList.Length + " delegate(s).");

            // Determine whether the delegates are System.Multicast delegates
            // if (ConStartDel is System.MulticastDelegate && VowStartDel is System.MulticastDelegate) {
                Console.WriteLine("ConStartDel and ConStartVow are System.MulticastDelegates");
            // }

            // Run the two single delegates one after the other
            Console.WriteLine("Running ConStartDel delegate:");
            myHoldsStrings.PrintAllQualified(ConStartDel);
            Console.WriteLine("Running VowStartDel delegate:");
            myHoldsStrings.PrintAllQualified(VowStartDel);

            // Create a new, empty MulticastDelegate
            HoldsStrings.CheckAndPrintDelegate MultiDel;

            // Delegate.Combine receives an unspecified number of MulticastDelegates as parameters
            MultiDel = (HoldsStrings.CheckAndPrintDelegate) Delegate.Combine(ConStartDel, VowStartDel);

            // How many delegates is this delegate holding?
            DelegateList = MultiDel.GetInvocationList();
            Console.WriteLine("\nMulitDel contains " + DelegateList.Length + " delegates.");

            // What happens when this mulitcast delegate is passed to PrintAllQualified
            Console.WriteLine("Running the multiple delegate that combined the first two");
            myHoldsStrings.PrintAllQualified(MultiDel);

            // The Remove and Combine methods modify the multiple delegate
            MultiDel = (HoldsStrings.CheckAndPrintDelegate) Delegate.Remove(MultiDel, VowStartDel);
            MultiDel = (HoldsStrings.CheckAndPrintDelegate) Delegate.Combine(MultiDel, ConStartDel);

            // Finally, pass the combined delegates to PrintAllQualified again
            Console.WriteLine("\nRunning the multiple delegate that contains two copies of ConStartDel:");
            myHoldsStrings.PrintAllQualified(MultiDel);

            return;
        }   //end of main
    }   //end of Test


есче



Kolovorot
тут смотрел?
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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