Ваши последние 20 строк кода
От: Нахлобуч Великобритания https://hglabhq.com
Дата: 16.03.05 16:40
Оценка: 10 (5)
Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют

        class XmlContainerSerializer
        {
        public:
            //
            // Serializes container
            template <typename Container>
            static MSXML2::IXMLDOMElementPtr Serialize(const MSXML2::IXMLDOMDocument2Ptr &xmlDocument,
                const Container &container, long lItems, const CString &strElementName)
            {
                MSXML2::IXMLDOMElementPtr xmlElement = xmlDocument->createElement((LPCTSTR)strElementName);
                for(long lItem = 0; lItem < lItems; ++lItem)
                    xmlElement->appendChild(container[lItem].Serialize(xmlDocument));

                return xmlElement;
            }

            //
            // Deserializes container. strXPath is the XPath expression
            // which selects root node
            template <typename Container, typename Type>
            static void Deserialize(const MSXML2::IXMLDOMElementPtr &xmlElement, Container &container,


17.03.05 12:26: Перенесено модератором из 'Исходники' — Хитрик Денис
HgLab: Mercurial Server and Repository Management for Windows
Re: Ваши последние 20 строк кода
От: MaximE Великобритания  
Дата: 16.03.05 18:25
Оценка: 1 (1) :)
Нахлобуч wrote:

> Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют


BOOST_AUTO_UNIT_TEST(parser)
{
     using namespace boost;
     using namespace boost::assign; // bring 'operator+=()' into scope
     using namespace text_rpc;

     request t;
     std::stringstream s;

     request r1;
     r1.call_id = 1;
     r1.ns = "profile";
     r1.function = "add";
     r1.arguments["id"] = 0x007;
     r1.arguments["first_name"] = "James";
     r1.arguments["last_name"] = "Bond";
     r1.arguments["additional_info"] = "Has a license to kill";
     std::vector<argument_type> v1;
     v1 += -1, 0, 1, 1u;
     r1.arguments["secret_codes"] = v1;

     s << r1;
     s >> t;
     std::cout << r1;
     std::cout << t;
     BOOST_CHECK(lexical_cast<std::string>(r1) == lexical_cast<std::string>(t));
}


--
Maxim Yegorushkin
Posted via RSDN NNTP Server 1.9
Re: Ваши последние 20 строк кода
От: vdimas Россия  
Дата: 16.03.05 20:01
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют



        // predicate expression type
        enum ExpressionType {
            EXP_COMPARE, EXP_NULL, EXP_LIKE, EXP_BETWEEN, EXP_IN
        };

        // item of expression
        union Expression
        switch (ExpressionType) {
            case(EXP_COMPARE):
                CompareExpression expCompare;

            case(EXP_NULL):
                NullExpression expNull;

            case(EXP_LIKE):
                LikeExpression expLike;

            case(EXP_BETWEEN):
                BetweenExpression expBetween;

            case(EXP_IN):
                InExpression expIn;
        };

        // predicate connector
        enum PredicateConnect { PRED_AND, PRED_OR };

        enum PredicateType { PRED_SIMPLE, PRED_COMPLEX, PRED_EMPTY };

        union Predicate
        switch (PredicateType) {
            case(PRED_SIMPLE):
                Expression expression;

            case(PRED_COMPLEX):
                struct ComplexPredicate {
                    PredicateConnect connect;
                    sequence<Predicate> predList;
                } predList;
        };
Re: Ваши последние 20 строк кода
От: Mr. None Россия http://mrnone.blogspot.com
Дата: 17.03.05 04:37
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют


void VHeap::CommitTopChunk()
{
    _nUsedChunk = _freeChunks.front();
    _freeChunks.pop_front();
    UsedChunk().Commit();
}

void* VHeap::Allocate(size_t size)
{
    void* res = NULL;
    res = UsedChunk().Allocate(size);
    if(res == NULL)
    {
        if( _freeChunks.empty()
            || size > UsedChunk().Size() )
        {
            return NULL;
        }
        CommitTopChunk();
        res = UsedChunk().Allocate(size);
    }
    return res;
}
Компьютер сделает всё, что вы ему скажете, но это может сильно отличаться от того, что вы имели в виду.
Re: Ваши последние 20 строк кода
От: GregZ СССР  
Дата: 17.03.05 04:52
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют



#define CMD_DATA_HANDLER(MessageType, func) \
    case MessageType::code: \
    { \
        VS_STATIC_CHECK(MessageType::type == typeData, CantUseForNonDataType); \
        u_long sizeOfData = *reinterpret_cast<u_long*>(msg + sizeof(MessageType)); \
        assert(sizeof(MessageType) == size + sizeOfData + sizeof(u_long)); \
        if(sizeof(MessageType) == size + sizeOfData + sizeof(u_long)) \
        { \
            func( \
                reinterpret_cast<MessageType&>(*msg), \
                sizeOfData, \
                msg + sizeof(MessageType) + sizeof(u_long)); \
        } \
        break; \
    }
Re: Ваши последние 20 строк кода
От: Andir Россия
Дата: 17.03.05 05:07
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют


:GetMonthString:{
    monthNumber |
    ["января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"].Item(monthNumber)
}

@@[
    namespace.Topics.SortBy
    {
        each | DateTime.Now.SpanBetween(each.Created)
    }.Snip(3).Collect
    {
        e |
        [            
            "%small gray%[",
            e.Created.Day, " ", GetMonthString(e.Created.Month), " ", e.Created.Year, " года",
            "]%% ",
            Presentations.Link(federation.LinkMaker.LinkToTopic(e.Fullname), e.Name, e.Summary),
            ": ",
            e.Summary, ".",
            Newline
        ]
    }

]@@


С Уважением, Andir!
Re: Ваши последние 20 строк кода
От: AlLucky Беларусь Qulix Systems
Дата: 17.03.05 06:53
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

public Hashtable(int capacity, float loadFactor, IHashCodeProvider hcp, IComparer comparer) {
            if (capacity < 0)
                throw new ArgumentOutOfRangeException("capacity", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
            if (!(loadFactor >= 0.1f && loadFactor <= 1.0f))
                throw new ArgumentOutOfRangeException("loadFactor", String.Format(Environment.GetResourceString("ArgumentOutOfRange_HashtableLoadFactor"), .1, 1.0));
    
            // Based on perf work, .72 is the optimal load factor for this table.  
            this.loadFactor = 0.72f * loadFactor;
    
            double rawsize = capacity / this.loadFactor;
            if (rawsize > Int32.MaxValue)
                throw new ArgumentException(Environment.GetResourceString("Arg_HTCapacityOverflow"));

            int hashsize = GetPrime ((int)rawsize);
            buckets = new bucket[hashsize];
    
            loadsize = (int)(this.loadFactor * hashsize);
            if (loadsize >= hashsize)
              loadsize = hashsize-1;
    
            this.hcp = hcp;
            this.comparer = comparer;
        }

Sincerely Mine ... AlLucky Sly << RSDN@Home 1.1.4 Слушаю болтовню коллег... >>
Aleksandr Sly
Re: Ваши последние 20 строк кода
От: avbochagov Россия  
Дата: 17.03.05 07:03
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют


function outputToHtmlStream(text, stream)
{
    // создание объекта для вывода в поток в формате HTML
    var writer = new KodeksFormatHTMLWriter(stream);
    writer.setHyperlinkConverter(ConverterHyperlink);
    writer.setPictureConverter(ConvertImage);
    
    // создание объекта-итератора по тексту документа
    var parser = new KodeksFormatParser();
    
    // установка объекта-обработчика событий
    parser.setHandler(writer);
    
    // установка объекта-обработчика ошибок
    parser.setErrorHandler(writer);
    
    // запуск процесса вывода в HTML
    parser.parse(text);
}
... << RSDN@Home 1.1.4 beta 4 rev. 350>>
Re: Ваши последние 20 строк кода
От: butcher Россия http://bu7cher.blogspot.com
Дата: 17.03.05 07:04
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют

Те которые с плюсом — мои
--- src/fluxbox.cc.orig Mon Jan 17 12:35:52 2005
+++ src/fluxbox.cc  Wed Mar 16 07:01:19 2005
@@ -1026,9 +1026,16 @@
     if (keyScreen() == 0 || mouseScreen() == 0)
         return;

+   static bool needMenu = false;
+   KeySym key = XLookupKeysym(&ke, 0);

     switch (ke.type) {
     case KeyPress:
+
+       if (key == XK_Super_L || key == XK_Super_R)
+           needMenu = true;
+       else needMenu = false;
+
         m_key->doAction(ke);
         break;
     case KeyRelease: {
@@ -1052,6 +1059,10 @@
             }
         }

+       if (needMenu && (key == XK_Super_L || key == XK_Super_R)){
+           FbCommands::ShowRootMenuCmd cmd;
+           cmd.execute();
+       }
         break;
     }
     default:
--- src/Keys.cc.orig    Fri Nov 19 15:01:37 2004
+++ src/Keys.cc Wed Mar 16 07:00:45 2005
@@ -134,6 +134,12 @@

     FbTk::App::instance()->sync(false);

+   // keybindings for RootMenu
+   FbTk::KeyUtil::grabKey(XKeysymToKeycode(
+       FbTk::App::instance()->display(), XK_Super_L), 0);
+   FbTk::KeyUtil::grabKey(XKeysymToKeycode(
+       FbTk::App::instance()->display(), XK_Super_R), 0);
+
     //open the file
     ifstream infile(filename);

Нет ничего невозможного..
Re: Ваши последние 20 строк кода
От: Mamut Швеция http://dmitriid.com
Дата: 17.03.05 07:26
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют


Привел всю функчию, не обессудьте

bool iqBuilder::build()
{
    QFile file( _file );
    if(!file.open(IO_ReadWrite))
    {
        _logger.log(QString("Could not open file ") + _file);
        file.close();
        return false;
    }

    QString s;
    int line, column;

    if(!_xmlDoc->setContent(&file, &s, &line, &column))
    {
        _logger.log(QString("Xml error: ") + s + QString(" on line ") +  QString::number(line) + ", column " + QString::number(column));
        return false;
    }

    QDomElement rootElement = _xmlDoc->documentElement();
    try
    {
        QString tool = "";
        QString toolName = "";

        QDomNode toolNode = rootElement.firstChild().firstChild();
        while(!toolNode.isNull())
        {
            QDomElement toolElement = toolNode.toElement();
            if(!toolElement.isNull())
            {
                toolName = toolElement.attribute("name", "Undefined");
                tool = toolElement.attribute("path");
                _logger.log("<b>" + toolName + "</b>");
            }    
                
            QDomNode fileNode = toolNode.firstChild();
            while(!fileNode.isNull())
            {
                QDomElement fileElement = fileNode.toElement();
                if(!fileElement.isNull())
                {
                    QString name = fileElement.attribute("name");
                    QString path = fileElement.attribute("path");
                    QString fileName = fileElement.attribute("file");
                    QString lastTime = fileElement.attribute("lasttime", "0");

                    QFileInfo qfinfo = QFileInfo(path + fileName);
                    QDateTime qLastModified = qfinfo.lastModified();
                    
                    QString fileTime = qLastModified.toString("yyyyMMddhhmmsszzz");

                    _logger.log("\t" + fileName);
                    if(lastTime == fileTime)
                    {
                        _logger.log("\t\tSkipped. File time hasn't changed");
                    }
                    else
                    {
                        _logger.log("\t\tProcessing.");
                        fileElement.setAttribute("lasttime", fileTime);
                        QDomNode execNode = fileNode.firstChild();

                        while(!execNode.isNull())
                        {
                            QDomElement execElement = execNode.toElement();
                            if(!execElement.isNull())
                            {
                                QRegExp rx;
                                QString options = execElement.attribute("options");

                                rx.setPattern("\\$\\(name\\)");
                                options.replace(rx, name);

                                rx.setPattern("\\$\\(path\\)");
                                options.replace(rx, path);

                                rx.setPattern("\\$\\(file\\)");
                                options.replace(rx, fileName);

                                while(!_processExited) qApp->processEvents();
                                _processExited = false;
                                _process->clearArguments();
                                _process->addArgument(tool + " " + options);
                                if(!_process->start())
                                {
                                    _logger.log("Could not process: \n" + tool + " " + options);
                                }
                                if(!_process->start())
                                {
                                    _logger.log("Could not process: \n" + tool + " " + options);
                                }
                            }
                            execNode = execNode.nextSibling();
                        }
                    }
                }
                fileNode = fileNode.nextSibling();
            }
            toolNode = toolNode.nextSibling();
        }
    } catch(...){
        return false;
    }

    file.close();
    if(file.open( IO_WriteOnly | IO_Truncate ))
    {
        _logger.log("Writing file...");
        QTextStream qts(&file);

        _xmlDoc->save(qts, 4);
        file.close();
    }
    _logger.log("Done.");
    
    return true;
}
... << RSDN@Home 1.1.4 beta 4 rev. 0>> ... <<Winamp is playing "Kenji Kawai — 07 Kugutsuuta aratayo ni kamutsudo hite">> ...


dmitriid.comGitHubLinkedIn
Re: Ваши последние 20 строк кода
От: CiViLiS Россия  
Дата: 17.03.05 07:44
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют

Новый вид флешмоба?
<< RSDN@Home 1.1.4 beta 4 rev. 350>>
"Бог не терпит голой сингулярности" -- Роджер Пенроуз
Re: Ваши последние 20 строк кода
От: yxiie Украина www.enkord.com
Дата: 17.03.05 08:54
Оценка:
    <!-- wave 6 -->
    <schedule>
        <object>/object/asteroid1-small1-slowest.xml</object>
        <begintime>100000</begintime>
        <endtime>120000</endtime>
        <count>40</count>
        <orbitradius>500.0</orbitradius>
        <shard>/object/bonus/box1.xml</shard>
        <shardcount>10</shardcount>
    </schedule>
    <schedule>
        <object>/object/asteroid1-big1-slowest.xml</object>
        <begintime>100000</begintime>
        <endtime>120000</endtime>
        <count>40</count>
        <orbitradius>500.0</orbitradius>
        <shard>/object/bonus/capsule1.xml</shard>
        <shardcount>10</shardcount>
    </schedule>
    <schedule>
... << RSDN@Home 1.1.3 stable >>
Re: Ваши последние 20 строк кода
От: ssm Россия  
Дата: 17.03.05 09:12
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют



const ICXMTDataTagTextAttrib *queryTag(
        ITextModel *iTextModel, 
        TextIndex &textIndex, 
        int32 &selectionLength)
    {
        ASSERT(iTextModel);    

        K2Vector<ClassID> attributeClasses;
        attributeClasses.push_back(kcxmtDataTagBoss);

        K2Vector<InDesign::TextRange> textRanges;
        textRanges.push_back(InDesign::TextRange(iTextModel, textIndex, selectionLength));

        TextAttributeRunIterator iter(
            textRanges.begin(), textRanges.end(),
            attributeClasses.begin(), attributeClasses.end());    

        while(iter)
        {
            const ICXMTDataTagTextAttrib * result = 
                static_cast<const ICXMTDataTagTextAttrib *>(
                iter->QueryByClassID(kcxmtDataTagBoss, ICXMTDataTagTextAttrib::kDefaultIID));

            if(result)
            {
                RangeData rangeData = iter.GetRunRange();
                textIndex = rangeData.Start(0);
                selectionLength = rangeData.Length();

                return result;
            }

            ++iter;
        }

        return 0;
    }
Re[2]: Ваши последние 20 строк кода
От: ssm Россия  
Дата: 17.03.05 09:26
Оценка: +2 :))) :))) :)
Здравствуйте, butcher, Вы писали:

B>+       if (key == XK_Super_L || key == XK_Super_R)
B>+           needMenu = true;
B>+       else needMenu = false;


исключительно в целях отладки и волею индуса архитектора
Re: Ваши последние 20 строк кода
От: Sergeant Украина www.photomirror.com.ua
Дата: 17.03.05 09:33
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют


            5 { 
                #факсы - краткая выписка
                set repeat 0
                set date [GetString "$path\\r_putdate.wav" 5000 3]
                set faxtype 0
                set language "ru"
                set faxfilename "vipiska.fax"
                file delete $faxfilename
                if { [source "scripts\\faxes.tcl"] == "0" } {
                    PlayFile [syntez "<$path\\r_missingquery.wav><$path\\r_meinmenu.wav>"] 0
                } else {
                    #send fax
                    output "$path\\r_pressfax.wav" 1
                    if { [sendfax 0 "" $faxfilename] == "SUCCESS" } {
                        dbg "Факс отправлен успешно"
                    }
                    file delete $faxfilename
                    set confmenuloop 0
                }
                incr timout 5000
            }
Курить я буду, но пить не брошу.
Re: Ваши последние 20 строк кода
От: Chamele0n  
Дата: 17.03.05 09:37
Оценка:
Здравствуйте, Нахлобуч, Вы писали:
function main ()
 local w = mappy.getValue(mappy.MAPWIDTH)
 local h = mappy.getValue(mappy.MAPHEIGHT)

 if (w == 0) then
  mappy.msgBox ("Flip horizontal", "You need to load or create a map first", mappy.MMB_OK, mappy.MMB_ICONINFO)
 else
   mappy.copyLayer(mappy.getValue(mappy.CURLAYER),mappy.MPY_UNDO)
    local y = 0
    while y < h do
     local x = 0
     while x < w/2 do
      local bleft = mappy.getBlock (x, y)
      local bright = mappy.getBlock (w-x-1, y)
      mappy.setBlock (x, y, bright)
      mappy.setBlock (w-x-1, y, bleft)
      x = x + 1
     end
     y = y + 1
    end

    mappy.updateScreen()

   end
  end
    function main ()
 local w = mappy.getValue(mappy.MAPWIDTH)
 local h = mappy.getValue(mappy.MAPHEIGHT)

 if (w == 0) then
  mappy.msgBox ("Flip horizontal", "You need to load or create a map first", mappy.MMB_OK, mappy.MMB_ICONINFO)
 else
   mappy.copyLayer(mappy.getValue(mappy.CURLAYER),mappy.MPY_UNDO)
    local y = 0
    while y < h do
     local x = 0
     while x < w/2 do
      local bleft = mappy.getBlock (x, y)
      local bright = mappy.getBlock (w-x-1, y)
      mappy.setBlock (x, y, bright)
      mappy.setBlock (w-x-1, y, bleft)
      x = x + 1
     end
     y = y + 1
    end

    mappy.updateScreen()

   end
  end
... << RSDN@Home 1.1.3 stable >>
Re[2]: Ваши последние 20 строк кода
От: Esef Украина  
Дата: 17.03.05 09:37
Оценка:
g.setStrokeStyle(Graphics.DOTTED);
        g.setColor(Settings.LEVEL_INFO_COLOR);
        g.drawLine(0, Settings.LEVEL_INFO_HEIGHT, Settings.SCREEN_WIDTH, Settings.LEVEL_INFO_HEIGHT);
        g.setStrokeStyle(Graphics.SOLID);

        for (int i = 0; i < 2; i++)
        {
            g.drawLine((i + 1) * Settings.SCREEN_WIDTH / 3, 2,
                       (i + 1) * Settings.SCREEN_WIDTH / 3, Settings.LEVEL_INFO_HEIGHT - 2);
        }
        iconsFramer.drawFrame(g, 0, Settings.SCREEN_WIDTH / 3 + 2,
                              (Settings.LEVEL_INFO_HEIGHT - iconsFramer.getFrameHeight()) / 2);
        if(fisher.getBaitCount() > 0)
        {
            iconsFramer.drawFrame(g, fisher.getBaitType() + 1, Settings.SCREEN_WIDTH * 2 / 3 + 2,
                                  (Settings.LEVEL_INFO_HEIGHT - iconsFramer.getFrameHeight()) / 2);
        }
        String str = String.valueOf(fisher.getNeedFishes() - fisher.getCatchedFishes());
        Game.smallFont.drawText(str, Settings.SCREEN_WIDTH * 2 / 3 - 2 - Game.smallFont.stringWidth(str),
                                (Settings.LEVEL_INFO_HEIGHT - Game.smallFont.getCharHeight()) / 2,
                                true, g);
        str = String.valueOf(fisher.getBaitCount());
        Game.smallFont.drawText(str, Settings.SCREEN_WIDTH - 2 - Game.smallFont.stringWidth(str),
                                (Settings.LEVEL_INFO_HEIGHT - Game.smallFont.getCharHeight()) / 2,
                                true, g);
        str = timeToStr(currentTime, null);
        Game.smallFont.drawText(str, (Settings.SCREEN_WIDTH / 3 - Game.smallFont.stringWidth(str)) / 2,
                                (Settings.LEVEL_INFO_HEIGHT - Game.smallFont.getCharHeight()) / 2, true, g);
Re: Ваши последние 20 строк кода
От: WoldemaR Россия  
Дата: 17.03.05 09:38
Оценка:
bool Compositor::IsAncestor(const Document* pDocument)const
{
    const Document* pParent = static_cast<const Document*>(this);
    while (pParent)
    {
        if (pParent == pDocument)
            return true;
        pParent = pParent->GetParent();
    }
    return false;
}

Document* Compositor::GetRoot()
{
    Document* pDocument = static_cast<Document*>(this);
    while (pDocument->GetParent())
        pDocument = pDocument->GetParent();
    return pDocument;
}
Re: Ваши последние 20 строк кода
От: V.Petrovski Беларусь  
Дата: 17.03.05 09:46
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют


using System;

namespace Ranet.Cooperation.DataTransformer
{
    /// <summary>
    /// A helper class for testing parameters.
    /// </summary>
    public sealed class Error
    {
        /// <summary>
        /// Throws ArgumentException when character in the range 0x0 to 0x20, and the characters in the range 0xFFFE and 0xFFFF. 
        /// </summary>
        /// <param name="value">char value.</param>
        public static void ThrowIsInvalidChar(char value) 
        {
            if (value > 0xFFFD) 
                throw new ArgumentException("Invalid Unicode.");
            else if (value < 0x20 && value != '\t' & value != '\n' & value != '\r') 
                throw new ArgumentException("Invalid Xml Characters.");
        }
        /// <summary>
        /// Throws ArgumentException when value is null or value isn't validType.
        /// </summary>
        /// <param name="value">test object.</param>
        /// <param name="validType">valid type for test object.</param>
        /// <param name="paramName">parameter name for ArgumentException.</param>
        public static void ThrowIsNullOrInvalidType(object value, Type validType, string paramName)
        {
            ThrowIsNull(value, paramName);
            
            System.Type valueType = value.GetType();
            
            if(!valueType.Equals(validType))
                throw new ArgumentException(String.Format("Received '{1}' type, but expected '{0}' type.", validType, valueType), paramName);
        }
        /// <summary>
        /// Throws ArgumentNullException when string value is null or empty.
        /// </summary>
        /// <param name="value">string value.</param>
        /// <param name="paramName">parameter name for ArgumentNullException.</param>
        public static void ThrowIsNullOrEmpty(string value, string paramName)
        {
            // check for null
            ThrowIsNull(value, paramName, null);
            
            // check for empty
            if(value.Length == 0)
                throw new ArgumentException("string is empty", paramName);
        }
        /// <summary>
        /// Throws ArgumentNullException when value is null or empty string.
        /// </summary>
        /// <param name="value">test object.</param>
        /// <param name="paramName">parameter name for ArgumentNullException.</param>
        public static void ThrowIsNull(object value, string paramName)
        {
            ThrowIsNull(value, paramName, null);
        }
        /// <summary>
        /// Throws ArgumentNullException when value is null or empty string.
        /// </summary>
        /// <param name="value">test object.</param>
        /// <param name="paramName">parameter name for ArgumentNullException.</param>
        /// <param name="message">text message for ArgumentNullException.</param>
        public static void ThrowIsNull(object value, string paramName, string message)
        {
            if(value == null)
            {
                if(message == null)
                    throw new ArgumentNullException(paramName);
                else
                    throw new ArgumentNullException(paramName, message);
            }
        }
    }
}
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Re: Ваши последние 20 строк кода
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 17.03.05 09:49
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>[ccode]


У тебя там ошибка.
... << RSDN@Home 1.1.4 beta 4 rev. 302>>
Вселенная бесконечна как вширь, так и вглубь.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.