c# 코드를 개선하는 5가지 팁 (4)
8004 단어 c#
코드의 빈 문자열을 어떻게 검사합니까?
이 점에서, 나는 너에게 세 가지 빈 문자열 검사 스타일을 보여줄 것이다.나는 네가 모든 풍격을 익히기를 바란다. 그러나 아마도 그들의 표현에 익숙하지 않을 것이다.우리 작은 예로부터 시작합시다.다음은 세 가지 함수가 있다. (네, 모두 정적입니다.)나는 게을러서 다시 대상을 만들고 싶지 않다.첫 번째 스타일에서는 Length 속성을 사용합니다.두 번째 경우에는 공백 또는 빈 문자열("")을 사용합니다.세 번째 상황에서, 나는string류의 빈 속성을 사용한다.다음은 제 테스트 코드입니다.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
namespace Test1
{
public class Compare
{
public static void First(string Value)
{
if (Value.Length != 0)
{
}
}
public static void Second(string Value)
{
if (Value != "")
{
}
}
public static void Third(string Value)
{
if (Value != string.Empty )
{
}
}
}
class Program
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
Compare.First("Sourav");
sw.Stop();
Console.WriteLine("Using Length: "+sw.ElapsedTicks);
sw.Restart();
Compare.Second("Sourav");
sw.Stop();
Console.WriteLine("Using != " +sw.ElapsedTicks);
sw.Restart();
Compare.Third("Sourav");
sw.Stop();
Console.WriteLine("Using Empty: " + sw.ElapsedTicks);
Console.ReadLine();
}
}
}
출력 결과는 다음과 같다. 우리는 길이 측정 스타일(첫 번째)이 가장 많이 걸리는 것을 볼 수 있다.문자열의 빈 스타일은 가장 적은 시간을 소모하는 과정입니다.
따라서 마지막 문장은 "문자열이 비어 있는지 확인하려면 String.empty를 사용하십시오."이다.
스타일 바꿔, 스타일 바꿔.
네, 정확한 유형 변환 기술을 실현하지 못하면 변경하십시오.다음은 두 가지 전통적인 유형 전환 스타일과 코드 성능에 대한 영향을 보여 드리겠습니다.첫 번째 스타일(또는 최악의 스타일)은 매우 간단하다. 대부분의 개발자들이 사용하는 괄호()를 사용한다.두 번째 스타일은 as 키워드를 통해.아래의 코드에서 나는 이 두 가지 기능을 실현하였다.다음 코드를 봅시다.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
namespace Test1
{
public class Base
{
}
public class Derive : Base
{
}
class Program
{
static void Main(string[] args)
{
Derive d = new Derive();
Stopwatch sw = new Stopwatch();
sw.Start();
Base b =(Base) d;
sw.Stop();
Console.WriteLine("Using type cust : "+ sw.ElapsedTicks);
sw.Restart();
Base c = d as Base;
sw.Stop();
Console.WriteLine("Using as keyword : "+ sw.ElapsedTicks);
Console.ReadLine();
}
}
}
다음은 출력 내용: 응.우리가 유행하는 최악의 기술은 as 키워드보다 6배 느리다.지금, 이 점에서 나는 결론을 쓰지 않을 것이다. 어떻게 대상을 바꾸느냐가 너의 선택이다.
하이 문자열 비교
네, 문자열에 대한 또 다른 기교입니다.우리는 두 가지 자주 사용하는 문자열 비교 방법이 있다는 것을 안다.하나는 "조작부호=="이고, 다른 하나는 String 클래스의 Equals() 방법을 사용합니다.
어느 날 나는 내 동료에게 물었다. "당신은 어느 것을 가장 좋아합니까?"그는 첫 번째로 대답했다.나는 그에게 왜냐고 물었다.그는 "그것은 매우 간단하고 쉽다. 내가 처음으로 c#를 배웠을 때부터 나는 줄곧 그것을 사용해 왔다. 나는 그것에 대해 매우 만족한다. 나는 나의 스타일을 바꾸지 않을 것이다."라고 대답했다.응, 너도 이런 상황에 처했다면, 나는 네가 먼저 출력 화면을 보고 코드를 보는 것을 건의한다.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
namespace Test1
{
public class Test
{
public static void First(String Value)
{
for (int i = 0; i < 100; i++)
{
if (Value == "Sourav")
{
continue;
}
}
}
public static void Second(String Value)
{
for (int i = 0; i < 100; i++)
{
if (Value.Equals("Sourav"))
{
continue;
}
}
}
}
class Program
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
Test.First("Sourav");
sw.Stop();
Console.WriteLine("Using == : "+ sw.ElapsedTicks);
sw.Restart();
Test.Second("Sourav");
sw.Stop();
Console.WriteLine("Using Equals : "+ sw.ElapsedTicks);
Console.ReadLine();
}
}
}
너는 빠른 계산을 곁들인 계산기를 가지고 있다.화면에 "=="스타일을 사용하면 문자열 비교 함수(Equals()보다 190배 느립니다.나는 결론을 쓸 줄 모른다.이것은 당신의 책임입니다. 당신의 스타일을 바꾸고, 위의 그림 (출력 화면) 을 친구에게 공유하는 것입니다.
작은 기교로 순환을 찌르다
시작하기 전에 한 가지 알려주고 싶은 게 있어요.이것은 매우 중요한 점이 아니다.그렇지 않으면 이것은 매우 중요한 적응 기교가 될 것이다.여기서 전통적인 for순환을 어떻게 실현하는지 보여 드리겠습니다.만약 아래의 코드를 두루 훑어보면 두 번째'for'실현에서 국부 변수의 사용 시간이 더욱 적다는 것을 발견할 수 있다. 이것이 바로 왜 소모하는 시간이 더 적지만 결코 매우 적은 것은 아니다.따라서 가장 좋은 방법은 변수의 사용 횟수를 줄이는 것이다.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
namespace Test1
{
public class Base
{
public static void First(Int32 limit)
{
for (int i = 0; ++i <= limit; )
{
}
}
public static void Second(Int32 limit)
{
for (int i = limit; -- i >= 0; )
{
}
}
}
class Program
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
Base.First(100);
sw.Stop();
Console.WriteLine("First "+ sw.ElapsedTicks);
sw.Restart();
Base.Second(100);
sw.Stop();
Console.WriteLine("Second : "+ sw.ElapsedTicks);
Console.ReadLine();
}
}
}
다음은 출력 내용입니다. 결론을 한 줄 쓰겠습니다. "순환 교체 코드를 작성할 때 똑똑해야 합니다."
계승은 좋은 실천이지만, 항상 그렇지는 않다.
우리는 OOP의 아름다운 특성 중 하나가 계승이라는 것을 알고 있다. 이것은 코드의 군더더기를 줄이고 코드 유지보수를 개선하는 등이다.나는 결코 이런 것들을 부인하지 않지만, 나의 다섯 번째는 불필요하게 소류를 설립하는 것을 반대하는 것이다.만약 정말 필요하지 않다면, 클래스 차원 구조를 만들지 마세요.다음 코드를 보세요.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
namespace Test1
{
public class Base
{
}
public class Derive :Base
{
public string name;
}
public class Concrete
{
public string name;
}
class Program
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
Derive d = new Derive();
d.name = "Sourav";
sw.Stop();
Console.WriteLine("Derive style : "+ sw.ElapsedTicks);
sw.Restart();
Concrete c = new Concrete();
c.name = "Sourav";
sw.Stop();
Console.WriteLine("Concrete class : "+ sw.ElapsedTicks);
Console.ReadLine();
}
}
}
우선, 나는 두 개의 작은 클래스를 만들었는데, 그것들 사이에서 나는 첫 번째 클래스를 전혀 사용하지 않았다.그것은 기본 서비스로 한다.두 번째 장면에서 나는 구체적인 종류를 만들었다.그것은 계승의 개념이 없다.main () 방법에서, 나는 그것들의 대상을 만들었다.출력 화면을 보여 주세요.출력 화면에서 보듯이 구체적인 클래스에서 대상을 만드는 것이 파생 클래스에서 만드는 것보다 훨씬 빠르다.우리는 한 줄의 주석으로'필요하지 않으면 클래스 차원 구조를 실현하지 마라'를 끝낼 것이다.
결론
친애하는 독자 여러분, 귀중한 시간을 들여 이 글을 완성해 주셔서 감사합니다.(대다수의 독자들이 처음부터 끝까지 읽지 않기 때문에 만약 네가 읽는다면 그것은 나의 개인적인 성과이다.여러분의 다양한 의견을 환영합니다.
저의 공식 계정에 관심을 가져 주십시오. 만약 당신이 좋아하는 외국어 기술 문장이 있다면, 공식 계정을 통해 저에게 추천해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.