bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

c#中的string是不能修改的嗎

這篇文章主要講解了“c#中的string是不能修改的嗎”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“c#中的string是不能修改的嗎”吧!

創新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于成都網站制作、成都網站建設、外貿營銷網站建設、井陘網絡推廣、微信小程序開發、井陘網絡營銷、井陘企業策劃、井陘品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創新互聯為所有大學生創業者提供井陘建站搭建服務,24小時服務熱線:028-86922220,官方網址:vcdvsql.cn

這個問題,應該不是問題吧!在C#中string是不可修改的,語法都是這么說的。但我今天想變通一種方式將原始的string內容修改,思路如下:

c++:

void editstring(wchar_t * ptr)
{	
	wchar_t* pc = ptr;
	int index = 0;	
	int len = _tcslen(ptr);//因為C#中傳過來的是unicode字符,所以strlen只能==1
	while (index < len)
	{
		if (*pc != 0)
		{
			*pc = *pc + 1;
			pc++;
		}
		index++;
	}
}

c#中:注意:因為c#用的字符串是unicode,比如'a'-->0x00 0x41 ,而不是普通C++中的char,必須要是wchar_t,但我在C#中無法用wchar_t,只能用char

[Dllimport.....]
public static unsafe extern editstring(char* ptr); 


string msg = "abc";
            unsafe 
            {
                fixed(char *pmsg = msg) 
                {
                    editstring(pmsg);
                }
            }
            Console.WriteLine("msg=" + msg);

實驗顯示如下:

msg=bcd

說明實驗成功。

上面做法是使用了fixed語句,那能不能不用fixed達到同樣的目的呢?

C++代碼不用變,只需要變C#代碼:

[DllImport("dllfordebugdemo.dll", EntryPoint = "editstring", CallingConvention = CallingConvention.Cdecl)]
        public static extern void editstring(IntPtr ptr);

 string msg = "abc";
            unsafe 
            {
                fixed(char *pmsg = msg) 
                {
                    IntPtr pm = (IntPtr)pmsg;
                    editstring2(pm);
                }
            }
            Console.WriteLine("msg=" + msg);

最終實驗也成功了。

感謝各位的閱讀,以上就是“c#中的string是不能修改的嗎”的內容了,經過本文的學習后,相信大家對c#中的string是不能修改的嗎這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!

網頁題目:c#中的string是不能修改的嗎
鏈接分享:http://vcdvsql.cn/article34/gjiepe.html

成都網站建設公司_創新互聯,為您提供網頁設計公司、靜態網站網站策劃、動態網站、做網站、App設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站建設