Remove () 메소드가 문자를 변수로 허용하는 이유는 무엇입니까?
이 코드를 고려하십시오.
var x = "tesx".Remove('x');
이 코드를 실행하면 다음 예외가 발생합니다.
startIndex는 길이보다 작아야합니다.
이 메소드에 int 대신 char를 사용하는 이유는 무엇입니까? 오류가 발생하지 않는 이유는 무엇입니까?
컴파일러 에이 동작이있는 이유는 무엇입니까?
char로 선언 된 'x'를 강화할 수 있습니다.
는 .Remove
유일한 유형의 두 가지 사항 변수를 int
시작하고 (선택한) 소수에서 제거 계산합니다.
char를 전달 하면 정수 표현으로 변환 됩니다. 의미는 'x'를 전달하면-> 120 이보다 크므 .Length
로이 오류가 발생합니다!
Implicit conversion
char을 int로 변환 할 수있는 명시 적 변환이 필요하지 않은 코드를 사용할 수 있습니다. 이것은 대답은 될 것입니다 600 (120*5)
-
char c = 'x';
int i = c;
int j = 5;
int answer = i * j;
에서 MSDN , 암시 적 변환은 다음과 같이 요약된다-
다른 사람이 말했듯이 유효한 입력을 사용 Replace
하거나 사용할 수 있습니다 Remove
.
의 확장가 Remove
그은을지지 char
언어로 암시 적으로 변환, int
그리고 Remove
방법의 시도는 외부 방법입니다. 오류가 발생하는 이유입니다.
Remove
판매의 일부를 제거 하는 데 사용되는 위치를 찾을 수 있습니다. 예 :
var x = "tesx";
var x = x.Remove(x.IndexOf('x'), 1);
이것은 'x'
문자열에서 첫-th 발생을 제거 합니다. 둘 이상의 발생 가능성이 Replace
있습니다.
var x = "tesx".Replace("x", String.Empty);
제거는 전역 변수를 사용하여 문자 제거 합니다. msdn을 참조하십시오 . 제거 호출은 문자를 ASCII 정수로 자동 변환하고 고급스러운 문자를 제거하는 것이 아닙니다.
업그레이드에서 x가 발생하는 경우를 선택하십시오.
"testx".Replace("x",string.Empty);
64 비트에서 x의 첫 번째 수준을 선택하십시오.
var value = "testx1x2";
var newValue = value.Remove(value.IndexOf('x'), 1);
함수에 문자를 전달 하고이 값은 런타임에 int로 변환됩니다.
var x = "tesx";
var s = x.Remove(x.IndexOf('x'), 1);
또는
var s = x.Replace("x",string.Empty);
.Remove 는 INT를 매개 변수로 사용합니다. 제거는 두 개의 다음 변수를 사용합니다. 첫 번째는 시작하려는 위치입니다. (카운트는 0부터 시작합니다.) 두 번째 매개 변수는 위치부터 삭제하려는 문자 수입니다.
참고 :
MSDN에서 :
이 메서드 (.Remove)는 현재 인스턴스의 값을 수정하지 않습니다. 대신 count 매개 변수로 지정된 문자 수가 제거 된 새 페이지를 리턴합니다. startIndex에 지정된 위치에서 문자가 제거됩니다.
확장 메서드를 사용하여 이미 존재하는 클래스에 대한 고유 한 메서드를 만들 수 있습니다. 다음 예를 고려하십시오.
using System;
using MyExtensions;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
const string str1 = "tesx";
var x = str1.RemoveByChar('x');
Console.WriteLine(x);
Console.ReadKey();
}
}
}
namespace MyExtensions
{
public static class StringExtensions
{
public static string RemoveByChar(this String str, char c)
{
return str.Remove(str.IndexOf(c), 1);
}
}
}
'ProgramingTip' 카테고리의 다른 글
전체 파일에서 열을 선택해야합니까? (0) | 2020.12.10 |
---|---|
"이전 내장 대리자"를 종료 실행 중단 (0) | 2020.12.10 |
Excel의 수식에서 셀 번호가 증가하지 않도록 방지 (0) | 2020.12.10 |
소스에서 CentOS 6.5 / Linux / Unix에서 OpenSSL을 업그레이드하는 방법은 무엇입니까? (0) | 2020.12.10 |
docker postgres pgadmin 로컬 연결 (0) | 2020.12.10 |