안녕하세요, 저는 불변의 참조로 Uri를 발견했습니다. 그게 불변 참조의 정확한 의미인지는 모르겠지만 ... 누구든지 나를 도울 수 있습니까?불변의 참조 란 무엇입니까?
답변
그것이 변수이다 == "변화 없음"이 못해 한 번 설정하면 바뀔 수 있습니다. 변수 값을 변경할 수 있기 때문에 코드에서 많은 문제를 찾을 수있는 소스 일 수 있으므로 멀티 스레드 코드를 사용하는 경우 매우 유용합니다.
변경 불가능한 경우 일반적으로 좋습니다.
"불변"이 "값을 변경할 수없는"이란
"가변"== "가변"
"불변"
.NET Framework 내의 불변 클래스의 좋은 예는 System.String입니다. String 객체를 만들면 변경할 수 없습니다. 주위에는 방법이 없습니다. 그것이 클래스가 설계된 방식입니다. 복사본을 만들 수 있으며 원본 복사본을 수정할 수도 있지만 안전하지 않은 코드를 사용하지 않고도 원본 인스턴스를 변경할 수는 있습니다. 만약 당신이 그것을 이해한다면 아마도 내가 여기로 갈 곳의 요점을 알기 시작할 것입니다 : 메소드 호출 중에 클라이언트가 변경할 수 없다는 것을 보증 할 수 있도록 메소드에 전달되는 참조 기반 객체 , 그것은 그 자체로 불변 이어야만한다.
기본적으로 개체가 참조로 유지되는 CLR과 같은 세계에서 이러한 불변성의 개념은 매우 중요합니다. 이제 선택 System.String이 변경 가능한 것을 가정하자, 그리고의 당신은 다음과 같은 가상의 방법으로 방법을 쓸 수있다 가정하자 : 그들은이 방법을 불러 지금은 코드에 따라 더 얻을 때
public void PrintString(string theString)
{
// Assuming following line does not create a new
// instance of String but modifies theString
theString += ": there, I printed it!";
Console.WriteLine(theString);
}
은 발신자가 '실망을 상상 그들의 문자열에는이 여분의 것들이 추가됩니다. 그것이 시스템이라면 일어날 수있는 일입니다. 문자열이 변경 가능했습니다. 이유에 따라 String의 불변성이 존재한다는 것을 알 수 있습니다. 아마도 디자인에 동일한 기능을 추가하는 것을 고려해야합니다.
EX : 문자열
... 불변 u는 전 캐릭터의 위해가있는 경우 = "무엇이든지"대문자와
및 U 출력을 .. 전 Console.Write (s.ToUpper())
에 대한
콘솔은 u WHEREVER를 출력 할 것이다. 그러나 문자열 s는 여전히 ... 어떤 것이든지 ... 문자열을 WHERTVER로 바꾸는 변경 가능한 유형과 다르다.
자바에서는 모든 것이 String과 object로 취급된다. 10000 라인의 프로그램을 만들었다면 여기에 "public"을 100 번 추가 했으므로 저장소에이 대중이 생성 될 때마다 그렇게 생각한다고 생각하십시오. 그렇지 않으면 우리가 할 수있는 일을 만들었습니다. 그런 식으로 뭔가를 찾을 수있게되었습니다. (문자열 풀)
- 1. 강체 동역학 참조 란 무엇입니까?
- 2. 참조 란 무엇을 의미합니까?
- 3. 함수에 대한 lvalue 참조 란 무엇입니까?
- 4. 불변의 닷 넷 문자열
- 5. 불변의 객체는
- 6. 프록시 클래스 란 무엇입니까
- 7. 평면 개체 란 무엇입니까?
- 8. qdb 란 무엇입니까? 데이터베이스
- 9. 스레드 란 무엇입니까 (스레드 란 무엇입니까?)?
- 10. C#에서 값 클래스 란 무엇이며 참조 클래스는 무엇입니까?
- 11. Ruby on Rails의 맥락에서 참조 될 때 미들웨어 란 무엇입니까?
- 12. 구조 맵 및 참조, 모범 사례 란 무엇입니까?
- 13. git show-ref -d의 컨텍스트에서 역 참조 란 무엇입니까
- 14. C++ : 기술 수준 (ASM)에서 R-Value 참조 란 무엇입니까?
- 15. NHibernate가 불변의 클래스 인스턴스를 삭제하는 이유는 무엇입니까?
- 16. .NET 불변의 객체
- 17. 매핑 불변의 속성 여기
- 18. 파이썬 불변의 유형을 변경
- 19. 불변의 사전 오버 헤드?
- 20. Doctrine 2의 불변의 콜렉션?
- 21. 불변의 클래스는 메모리를 저장합니까?
- 22. .Net TransformFinalBlock() 메서드 란 무엇입니까?
- 23. "벤치 테스트 코드"란 무엇입니까?
- 24. CGI 란 무엇이며 CGI 스크립트 란 무엇입니까?
- 25. PHP : 불변의 public 멤버 필드
- 26. 불변의 크롬 sqlite 반환 객체
- 27. 파이썬, 서브 클래스 불변의 유형
- 28. PocketPC - VT_DATE 불변의 VT_BSTR로 변환
- 29. 불변의 문자열 대 std :: 문자열
- 30. 함수 호출에서 파이썬 불변의 타입
uri의 구문 분석 방법은 무엇입니까? –
문서를 확인하십시오 : http://developer.android.com/reference/android/net/Uri.html#parse(java.lang.String). – kcoppock
@satheesh : @ kcoppock의 덧글 외에 [이 SO 스레드] (http://stackoverflow.com/questions/444112/how-do-i-encode-uri-parameter-values)를 확인하십시오. – darioo