Programming/c# & winform2020. 9. 23. 11:33

변수에는 오버라이드 개념이 없고

변수에게 있어서 동일 이름이라 숨겨지는 건 하이드라고 표현하는 듯.

기존의 scope를 다른게 표현 하는 느낌이기도 하고(객체로 확장시키면서)...

조금 더 봐야 할 듯?

 

섀도잉(shadowing)

클래스내 멤버 변수가 멤버 메소드내에 선언한 변수에 의해 가려지는 경우

 

하이딩(hiding)

상속 관계에서 상위 객체의 변수가 하위 객체에서 선언한 변수에 의해 가려지는 경우

 

오버라이드(overriding)

상속 관계에서 상위 객체의 메소드가 하위 객체에서 선언한 메소드에 의해 가려지는 경우

해당 내용에 다음과 같은 설명이 있습니다.

case 2:
When you override a member variable in a child class (actually its hiding, not overriding),
which version of that variable will be called depends on the reference, the object, unlike method lookup. 
 
In your sample code, variable a and b are not actually member variable,
they are class variable since static.
Lets change the sample code a bit,
making the 'a' in class 'A' public and adding some test code in main. 

즉, 변수는 override되는 것이 아니라 hiding되는 것이며 dynamic하게 lookup되는 것이 아닙니다.
한 마디로, B의 a는 A의 a를 그저 hiding하는 것이고 A의 a와는 별개의 변수이며,
getA는 자기가 정의된 시점의 a를 a로 생각하게 됩니다. B의 a에 대해서는 아예 모르죠.

[링크 : https://kldp.org/node/110902]

'Programming > c# & winform' 카테고리의 다른 글

c# conditional attribute  (0) 2020.09.29
mono로 sln 프로젝트 빌드가 되네?  (2) 2020.09.28
c# 상속  (0) 2020.09.23
c#은 main()이 아니다 Main()이다 -_-  (0) 2020.09.23
c# base, is  (0) 2020.09.22
Posted by 구차니
Programming/c# & winform2020. 9. 23. 11:10

sealed 는 java의  final 역활.(더 이상 상속을 할 수 없도록)

 

set, get 키워드

java에서 setter/getter의 축약 문법 느낌?

변수에 대해서 사용하며, set의 경우 value 라는 생략된 인자를 받아서 사용

private string name = "John";
public string Name
{
    get
    {
        return name;
    }
    set
    {
       name = value;
    }
}

// ...
static void Main(string[] args)
{
    MyClass mc = new MyClass();
    Console.WriteLine(mc.Name);
    mc.Name = "Bree";
    Console.WriteLine(mc.Name);
}

[링크 : https://blog.hexabrain.net/142]

 

+

2020.09.29

Effective c#을 읽다 보니 property 라고 표현 함.

[링크 : https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/properties]

'Programming > c# & winform' 카테고리의 다른 글

mono로 sln 프로젝트 빌드가 되네?  (2) 2020.09.28
c# 오버라이드, 하이드, 쉐도우  (0) 2020.09.23
c#은 main()이 아니다 Main()이다 -_-  (0) 2020.09.23
c# base, is  (0) 2020.09.22
c# xml 주석  (0) 2020.09.22
Posted by 구차니
Programming/c# & winform2020. 9. 23. 10:37

국룰을 이렇게 파괴하는 MS 이대로 좋은가?!

아무튼 함수이름들도 죄다 Capitalize 했으니 Main()도 당연한거긴 한데..

하긴 한데.. 꽁기꽁기 하네?

 

$ csc cons.cs 
Microsoft (R) Visual C# Compiler version 3.6.0-4.20224.5 (ec77c100)
Copyright (C) Microsoft Corporation. All rights reserved.

error CS5001: Program does not contain a static 'Main' method suitable for an entry point

 

아래 코드를 테스트 하는데 너무 단순해서 그런가.. Child()와 Child() : base()의 실행 결과에 차이는 없다.

단순히 명시적으로 해주었을뿐 어짜피 부모 생성자 실행 후 자식 생성자를 실행 하는 것은 변하지 않기 때문일 듯.

using System;

class Program
{
	class Parent
	{
		public Parent() {Console.WriteLine("부모 생성자");}
	}
	
	class Child:Parent
	{
//		public Child() : base()
		public Child()
		{
			Console.WriteLine("자식 생성자");}
	}

	static void Main(string[] args)
	{
		Child child = new Child();
	}
}

[링크 : https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/base]

'Programming > c# & winform' 카테고리의 다른 글

c# 오버라이드, 하이드, 쉐도우  (0) 2020.09.23
c# 상속  (0) 2020.09.23
c# base, is  (0) 2020.09.22
c# xml 주석  (0) 2020.09.22
c# 프로그래밍, 문법 공부(문자열)  (0) 2020.09.22
Posted by 구차니
개소리 왈왈/블로그2020. 9. 23. 10:10

아니 저 수직으로 하락하는 경향은 도대체 멀까!?!!?

그래도 주중에는 어느정도 유지되었었는데! ㅠㅠ

 

Posted by 구차니
개소리 왈왈/컴퓨터2020. 9. 22. 23:03

출근길에 재활용 보니 컴퓨터 버려져 있어서 후다닥 주워서 집에 두고 출근

2.8GHz와 3.0GHz의 차이인가?

 

아쉽게도(?) 램과 하드는 적출 당한 상태.

'개소리 왈왈 > 컴퓨터' 카테고리의 다른 글

어쩌다 보니 득템?  (0) 2020.10.11
stormbook 14 pro 64GB 모델  (0) 2020.10.05
다이소 유선 마우스 뽑기 실패인가..  (6) 2020.09.14
지름신님 조합(?)  (0) 2020.09.10
올데이 그램 배터리 장난 아니네?  (0) 2020.09.10
Posted by 구차니

레츠고 이브이 구매하면서 덤으로(?) 얻은 녀석

포켓몬 고에 된다고 해서 하는데 내꺼에는 왜 잘 안 붙을까..

일단은 충전을 다해보고 고민하자..

 

[링크 : https://www.nintendo.co.kr/support/switch/monsterball/monsterballplus_supportmode.php] 서포트 모드

[링크 : https://bbs.ruliweb.com/family/515/board/184030/read/9433075]

[링크 : https://pokemonkorea.co.kr/monsterballplus?5fjbQL1tzdqT]

 

[링크 : https://blog.naver.com/wonno79/221400724548] 사용법

'개소리 왈왈 > 모바일 생활' 카테고리의 다른 글

V50 V50s 흐음..  (2) 2020.11.21
아이패드용 rdp 어플  (2) 2020.10.17
LG V50s가 눈에 들어옴  (0) 2020.09.12
통신비도 안정화 되었고..  (0) 2020.08.12
껌전지는 구하기가 힘드네  (0) 2020.07.06
Posted by 구차니
Linux/Ubuntu2020. 9. 22. 17:40

특이하게도 apt-get으로 삭제하면 설치되어 있지 않다고 나온다?

$ sudo apt-get remove gnome-calculator
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
패키지 'gnome-calculator'는 설치되어 있지 않아, 지우지 않았습니다.
0개 업그레이드, 0개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.

 

아래처럼 snap을 통해서 지우고 apt로 설치하면 해결.. (이게 머야!)

$ sudo snap remove gnome-calculator
$ sudo apt install gnome-calculator

[링크 : https://askubuntu.com/questions/1031673/cannot-open-calculator-app-from-keyboard-calculator-button]

'Linux > Ubuntu' 카테고리의 다른 글

ipmitool  (0) 2020.09.24
rsync with ssh  (0) 2020.09.23
ubuntu 18.04 tweak 설치하고 우클릭 안될 경우  (0) 2020.09.10
wacom 펜 타블렛 멀티터치로 zoom 작동 시키기  (0) 2020.09.08
ubuntu gnome 패널에 날짜 출력하기  (0) 2020.09.07
Posted by 구차니
Programming/c# & winform2020. 9. 22. 17:20

java의 super 키워드와 동일한 느낌?

 

[링크 : https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/base]

[링크 : https://blanedil.tistory.com/2]

[링크 : https://www.tutorialspoint.com/equivalent-of-java-super-keyword-in-chash]

 

+ 2020.09.23

ms 문서에서 보는데 base 아래 this가 있어서 무슨 차이인가 보니..

base는 상속관계에서, this는 클래스내 메소드에서 클래스 변수에 접근할때 사용하는 것으로 범위가 다른 경우에 대해서

서로 다른 용어로 정의를 한 것으로 보인다.

base 키워드는 파생 클래스 내에서 기본 클래스의 멤버에 액세스하는 데 사용됩니다
this 키워드는 클래스의 현재 인스턴스를 가리키며 확장 메서드의 첫 번째 매개 변수에 대한 한정자로도 사용됩니다.

[링크 : https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/this]

 

is는 instanceof에 상응할 듯.

[링크 : https://stackoverflow.com/questions/18147211/c-sharp-is-operator-alternative-in-java/18147246]

'Programming > c# & winform' 카테고리의 다른 글

c# 상속  (0) 2020.09.23
c#은 main()이 아니다 Main()이다 -_-  (0) 2020.09.23
c# xml 주석  (0) 2020.09.22
c# 프로그래밍, 문법 공부(문자열)  (0) 2020.09.22
c# 교과서 표준 입출력 등  (0) 2020.09.21
Posted by 구차니
Programming/c# & winform2020. 9. 22. 16:33

특이한 주석이 존재하네?

/// 일 경우에는 xml 주석인데 몇가지 태그가 존재한다.

어떤 의미로는.. doxygen 을 xml로 해놓은것 같긴한데...

결과물에 어떻게 나오는지 궁금하네?

// Adds two integers and returns the result
/// <summary>
/// Adds two integers and returns the result.
/// </summary>
/// <returns>
/// The sum of two integers.
/// </returns>
/// <example>
/// <code>
/// int c = Math.Add(4, 5);
/// if (c > 10)
/// {
///     Console.WriteLine(c);
/// }
/// </code>
/// </example>
public static int Add(int a, int b)
{
    // If any parameter is equal to the max value of an integer
    // and the other is greater than zero
    if ((a == int.MaxValue && b > 0) || (b == int.MaxValue && a > 0))
        throw new System.OverflowException();

    return a + b;
}

 

[링크 : https://docs.microsoft.com/ko-kr/dotnet/csharp/codedoc]

  [링크 : http://blog.daum.net/clerkurt/251]

'Programming > c# & winform' 카테고리의 다른 글

c#은 main()이 아니다 Main()이다 -_-  (0) 2020.09.23
c# base, is  (0) 2020.09.22
c# 프로그래밍, 문법 공부(문자열)  (0) 2020.09.22
c# 교과서 표준 입출력 등  (0) 2020.09.21
c# 교과서 - 키워드 정리  (0) 2020.09.21
Posted by 구차니
Programming/c# & winform2020. 9. 22. 15:42
ToUpper()
ToLower()
Split()
Trim()
TrimStart()
TrimEnd()
string.Join(delimiter, array)

Console.Clear()
Console.SetCursorPosition()

Console.ReadKey()
ConsoleKeyInfo info;
info.key == ConsoleKey.X
ConsoleKey.UpArrow

 

이 먼가.. 메소드에 Capitalize 한 녀석 떄려야함..

쉬프트 누릐기 쬬~~~~오오오오오낸 짜증남 -_-

 

ReadLine()에 이어서 ReadKey()

그리고 ConsoleKeyInfo 라는 녀석이 추가되었네..

'Programming > c# & winform' 카테고리의 다른 글

c# base, is  (0) 2020.09.22
c# xml 주석  (0) 2020.09.22
c# 교과서 표준 입출력 등  (0) 2020.09.21
c# 교과서 - 키워드 정리  (0) 2020.09.21
c# checked , unchecked  (0) 2020.09.21
Posted by 구차니