반응형
| = (단일 파이프 같음) 및 & = (단일 앰퍼샌드 같음)의 의미
아래 줄에서 :
//Folder.Attributes = FileAttributes.Directory | FileAttributes.Hidden | FileAttributes.System | FileAttributes.ReadOnly;
Folder.Attributes |= FileAttributes.Directory | FileAttributes.Hidden | FileAttributes.System | FileAttributes.ReadOnly;
Folder.Attributes |= ~FileAttributes.System;
Folder.Attributes &= ~FileAttributes.System;
무엇을 |=
(단일 파이프 동일) 및 &=
(단일 앰퍼샌드 동일) 평균의 C #
내가 다른 사람을 유지하여 시스템 속성을 제거 할을 ...
그들은 복합 할당 연산자, 번역 (매우 느슨하게)
x |= y;
으로
x = x | y;
및 &
. 암시 적 캐스트와 관련하여 몇 가지 경우에 좀 더 자세한 내용이 있고 한 번만 평가 기본적으로 그 요점입니다.
비 복합 연산자에서는 &
비트 "AND" 이고 |
비트 "OR" 입니다.
편집 :이 경우 원하는 Folder.Attributes &= ~FileAttributes.System
. 이유를 이해하기 :
~FileAttributes.System
"를 제외한 모든 속성을 의미합니다System
(~
는 비트 NOT).&
"결과는 피 연산 양쪽에서 발생하는 모든 속성"을 의미합니다.
따라서 기본적으로 마스크 역할을합니다 . ( "시스템을 사용하는 것")에있는 속성 만 유지합니다. 일반적으로 :
|=
대상 에 비트 만 추가 합니다.&=
대상에서 비트 만 제거 합니다.
a |= b
한 번만 평가 a = a | b
된다는 점 을 제외하고 는 동일 합니다. 한 번만 평가 된다는 점 을 제외하면 동일합니다.a
a &= b
a = a & b
a
다른 비트를 변경하지 않고 시스템 비트를 제거하지 않고
Folder.Attributes &= ~FileAttributes.System;
~
비트 부정입니다. 따라서 시스템 비트를 사용하는 모든 비트를 1로 설정합니다. and
마스크를 입력 -ing은 0으로 시스템을 설정하고 다른 모든 비트를 떠나 손상으로 인해 0 & x = 0
및 1 & x = x
어떤을위한x
나머지는 유지하면서 시스템 속성을 제거하고 싶습니다.
다음과 같이 할 수 있습니다.
Folder.Attributes ^= FileAttributes.System;
반응형
'IT' 카테고리의 다른 글
Flask 앱을 디버깅하는 방법 (0) | 2020.08.30 |
---|---|
시간을 가지고 해싱 (0) | 2020.08.30 |
.htaccess의 재 작성 규칙을 적용하기 위해 Apache를 다시 시작해야합니까? (0) | 2020.08.30 |
JavaScript / jQuery에서 객체의 속성을 얻는 방법은 무엇입니까? (0) | 2020.08.30 |
Javascript로만 Google 스프레드 시트에 액세스해야합니까? (0) | 2020.08.30 |