字符串实习.NET Framework中

编程入门 行业动态 更新时间:2024-10-27 05:32:01
本文介绍了字符串实习.NET Framework中 - 有什么好处以及何时使用实习的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想知道的过程和字符串的内部实习具体到.NET框架。也想知道用实习和场景/情况下,我们应该使用字符串实习来提高性能的好处。虽然我研究的杰弗里Richter的CLR书实习,但我仍然感到困惑,想知道它的更多细节。

问一个具体问题与样品$ C $如下:C:

私人无效治法() {     字符串s =字符串; //行1 - 实习文字作为答案解释     //s.intern(); //线2 - 3行中会发生什么,如果我们去掉这一行,会不会有什么区别? } 私人布尔方法b(字符串compareThis) {     如果(compareThis ==字符串)// 3号线 - 将这一行使用实习(有和没有取消注释第2行以上)?     {         返回true;     }     返回false; }

解决方案

实习是内部实现细节。 不像拳击的,我不认为有任何好处的知道的比你看过的更丰富的书。

微优化实习字符串的好处是手动的最小,因此一般不推荐。

这可能是这样描述的:

类节目 {     常量字符串SomeString =一些字符串; //被拘留     静态无效的主要(字串[] args)     {         尝试         {             VAR S1 = SomeString; //利用实习字符串             VAR S2 = SomeString; //利用实习字符串             VAR S =字符串;             VAR S3 =一些+ S; //没有实习             Console.WriteLine(S1 == S2); //使用实习比较             Console.WriteLine(S1 == S3); //不要使用实习比较         }         赶上(例外五)         {             Console.WriteLine(e.ToString());         }         Console.Read();     } }

I want to know the process and internals of string interning specific to .Net framework. Would also like to know the benefits of using interning and the scenarios/situations where we should use string interning to improve the performance. Though I have studied interning from the Jeffery Richter's CLR book but I am still confused and would like to know it in more detail.

[Editing] to ask a specific question with a sample code as below:

private void MethodA() { string s = "String"; // line 1 - interned literal as explained in the answer //s.intern(); // line 2 - what would happen in line 3 if we uncomment this line, will it make any difference? } private bool MethodB(string compareThis) { if (compareThis == "String") // line 3 - will this line use interning (with and without uncommenting line 2 above)? { return true; } return false; }

解决方案

Interning is an internal implementation detail. Unlike boxing, I do not think there is any benefit in knowing more than what you have read in Richer's book.

Micro-optimisation benefits of interning strings manually are minimal hence is generally not recommended.

This probably describes it:

class Program { const string SomeString = "Some String"; // gets interned static void Main(string[] args) { try { var s1 = SomeString; // use interned string var s2 = SomeString; // use interned string var s = "String"; var s3 = "Some " + s; // no interning Console.WriteLine(s1 == s2); // uses interning comparison Console.WriteLine(s1 == s3); // do NOT use interning comparison } catch (Exception e) { Console.WriteLine(e.ToString()); } Console.Read(); } }

更多推荐

字符串实习.NET Framework中

本文发布于:2023-11-13 09:20:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1583990.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字符串   NET   Framework

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!