string s = ReplaceInternal(oldValue, newValue);
Hatta açık kaynak .NET Çekirdek itibaren bu yöntem aramak zorunda bulamıyorum ReplaceInternal yöntemi çağrısı var GIT ama şans yok. ve içinde ne bu yöntemdir nerede
açıklayınız?
string s = ReplaceInternal(oldValue, newValue);
Hatta açık kaynak .NET Çekirdek itibaren bu yöntem aramak zorunda bulamıyorum ReplaceInternal yöntemi çağrısı var GIT ama şans yok. ve içinde ne bu yöntemdir nerede
açıklayınız?
extern C++ kod burada.
https://github.com/gbarnett/shared-source-cli-2.0/blob/master/clr/src/vm/comstring.cpp
Hattı 1578
FCIMPL3(Object*, COMString::ReplaceString, StringObject* thisRefUNSAFE, StringObject* oldValueUNSAFE, StringObject* newValueUNSAFE)
http://www.codeproject.com/Articles/1014073/Fastest-method-to-trim-all-whitespace-from-Strings?fid=1888684&df=90&mpp=25&prof=False&sort=Position&view=Thread&spc=Relaxed&fr=76 – Veener
bir göz here olması, bu fark edeceksiniz: Bu yöntem başka dll, dışarıdan uygulandığını
// This method contains the same functionality as StringBuilder Replace.
// The only difference is that
// a new String has to be allocated since Strings are immutable
[System.Security.SecuritySafeCritical] // auto-generated
[ResourceExposure(ResourceScope.None)]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private extern String ReplaceInternal(String oldValue, String newValue);
extern
anahtar kelime means. Bu modül tarafından kullanılan, yönetilmeyen bir dll'de (C++'da muhtemelen) yazılabilir. Yani, genellikle kodla yaptığınız gibi bu kodu koda dönüştüremez veya göremezsiniz. Güncelleme
biraz arama yaptıktan sonra ben CoreCLR projesinde gelen kodu bulundu:
https://github.com/dotnet/coreclr/blob/master/src/classlibnative/bcltype/stringnative.cpp
Çok teşekkür ederim, ama "another.dll" nerede? İçeride görmek istiyorum .. ya da onun adı ne? –
http://referencesource.microsoft.com/ altında referans kaynağı bakmak, işlev nasıl çalıştığını görmek için vardır.
Serach mscorlib
için, Replace
için System.String
, ulaşabilme gidip bak: http://referencesource.microsoft.com/#mscorlib/system/string.cs,69fc1d0aa6df8a90,references
[ 'ReplaceInternal'] (http://referencesource.microsoft.com/#mscorlib/system/string.cs,35ab9efe11757286) ist 'extern', büyük olasılıkla "yönetilmeyen", yerli C++ kodu olarak uygulanmaktadır. Detaylar için bakınız [P/Invoke] (https://en.wikipedia.org/wiki/Platform_Invocation_Services). –
btw kaynak koduna ihtiyacınız yok, kaynağı görebiliyorsunuz @ http://referencesource.microsoft.com/#mscorlib/system/string.cs,69fc1d0aa6df8a90 – Bob