第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

“private extern String PadHelper”的源代碼在哪里

“private extern String PadHelper”的源代碼在哪里

C#
慕妹3242003 2022-12-04 13:05:55
當(dāng)我在 .NET 源代碼中尋找以下源代碼時(shí),我沒(méi)有找到源代碼PadHelper是里面的方法PadLeft和PadRight.我的搜索有問(wèn)題嗎?[System.Security.SecuritySafeCritical]  // auto-generated[ResourceExposure(ResourceScope.None)][MethodImplAttribute(MethodImplOptions.InternalCall)]private extern String PadHelper(int totalWidth, char paddingChar, bool isRightPadded);
查看完整描述

1 回答

?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊

這似乎不是一個(gè)有據(jù)可查的事情。我也不知道更多細(xì)節(jié)以及它是如何工作的,但是看看CodeProject上的這個(gè)線程。該方法似乎位于 comstring.cpp 中。

不幸的是,該線程中鏈接的帖子不再可用。這可能是一個(gè)有趣的。

編輯:在 github 上找到完整的源代碼。

/*==================================PadHelper===================================

**Action:

**Returns:

**Arguments:

**Exceptions:

==============================================================================*/

FCIMPL4(Object*, COMString::PadHelper, StringObject* thisRefUNSAFE, INT32 totalWidth, CLR_CHAR paddingChar, CLR_BOOL isRightPadded)

{

    CONTRACTL {

        DISABLED(GC_TRIGGERS);

        THROWS;

        MODE_COOPERATIVE;

        SO_TOLERANT;        

    } CONTRACTL_END;


    STRINGREF refRetVal = NULL;

    STRINGREF thisRef = (STRINGREF) thisRefUNSAFE;

    HELPER_METHOD_FRAME_BEGIN_RET_ATTRIB_1(Frame::FRAME_ATTR_RETURNOBJ, thisRef);

    //-[autocvtpro]-------------------------------------------------------


    WCHAR *thisChars, *padChars;

    INT32 thisLength;



    if (thisRef==NULL) {

        COMPlusThrow(kNullReferenceException, L"NullReference_This");

    }


    RefInterpretGetStringValuesDangerousForGC(thisRef, &thisChars, &thisLength);


    //Don't let them pass in a negative totalWidth

    if (totalWidth<0) {

        COMPlusThrowArgumentOutOfRange(L"totalWidth", L"ArgumentOutOfRange_NeedNonNegNum");

    }


    //If the string is longer than the length which they requested, give them

    //back the old string.

    if (totalWidth<thisLength) {

        refRetVal = thisRef;

        goto lExit;

    }


    if (isRightPadded) {

        refRetVal = NewString(&(thisRef), 0, thisLength, totalWidth);

        padChars = refRetVal->GetBuffer();

        for (int i=thisLength; i<totalWidth; i++) {

            padChars[i] = paddingChar;

        }

        refRetVal->SetStringLength(totalWidth);

        _ASSERTE(padChars[totalWidth] == 0);

    } else {

        refRetVal = NewString(totalWidth);

        INT32 startingPos = totalWidth-thisLength;

        padChars = refRetVal->GetBuffer();

        // Reget thisChars, since if NewString triggers GC, thisChars may become trash.

        RefInterpretGetStringValuesDangerousForGC(thisRef, &thisChars, &thisLength);


            memcpyNoGCRefs(padChars+startingPos, thisChars, thisLength * sizeof(WCHAR));


        for (int i=0; i<startingPos; i++) {

            padChars[i] = paddingChar;

        }

    }


lExit: ;

    //-[autocvtepi]-------------------------------------------------------

    HELPER_METHOD_FRAME_END();

    return OBJECTREFToObject(refRetVal);

}

FCIMPLEND


查看完整回答
反對(duì) 回復(fù) 2022-12-04
  • 1 回答
  • 0 關(guān)注
  • 119 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)