Microsoft MVP성태의 닷넷 이야기
글쓴 사람
guest
홈페이지
첨부 파일
 

 public partial class Form1 : Form
 {
        
        public Form1()
        {
            InitializeComponent();
        }
                                     //this Error
        public static Image resizeImage(this Image imgToResize, Size size)
        {
            return (Image)(new Bitmap(imgToResize, size));
        }


질문>
 resizeImage(this Image imgToResize, Size size)에서 this를 빼면 에러가
위 에러가 안납니다

그런데 this를 써야 되는 경우가 혹시 있나요?








[최초 등록일: ]
[최종 수정일: 4/6/2023]


비밀번호

댓글 작성자
 



2023-04-06 08시41분
질문의 내용은 C# 3.0에 나온 "확장 메서드"를 기본적으로 모르기 때문에 나오는 것입니다. 그걸 공부하신 다음에,

Extension Methods (C# Programming Guide)
; https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/extension-methods

그래도 이해가 안 되는 부분이 있으면 다시 질문해 주세요.

참고로, 제 책을 가지고 있다면 "8.7 확장 메서드" 절을 보시면 됩니다.
정성태
2023-04-07 09시50분
[guest] 감사합니다
[guest]
2023-04-07 02시07분
[guest] 가장 유용한 용도는 sealed 클래스 처럼 상속이 안되는 경우처럼
main class를 수정하기 번거로운 경우로 이해했습니다

기본형은 namespace까지 별도로 꼭 구성해줘야 하나요?

using System;
using Extension;

namespace Extension
{
    public static class ExtensionMethod
    {
        public static int Multiplication(this int var, int a, int b)
        {
            int result = var;
            for (int i = 0; i < b; i++)
                result *= a;
            return result;
        }
    }
}

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("{0}", 5.Multiplication(2, 3));
        }
    }
}
[guest]
2023-04-07 02시13분
질문이, 위의 덧글 소스코드에서 namespace Extension 블록 없이 public static class ExtensionMethod를 정의하면 빌드가 안 된다는 건가요?
정성태

... 31  32  33  [34]  35  36  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
5048오명현8/23/201814745포트 관련 질문 하나더 있습니다. [1]
5047오명현8/22/201815707포트가 없을 경우를 가정한 내용에 대해 질문이 있습니다. 책468p. [1]
5046엿장수8/22/201815538다이렉트쇼 필터 추가하는데 [2]
5045임도진8/22/201816454c# opencv dll파일 로드 질문 [3]파일 다운로드1
5044엿장수8/20/201816366graphedit 에 등록되어있는 필터를 가져와서 사용하는방법을 알고싶습니다 [2]
5043hori...8/20/201815889Expression에 대한 책의 예제 관련하여 질문드립니다. [1]
5042황윤하8/20/201818279모드버스 TCP 관련 질문 [3]
5041david8/18/201817754.NET WebAPI 에서 Response 지연되는 이유 [3]
5040농상8/14/201817074정규표현식에 대해서 [3]
5039유영태8/14/201818703비동기 소켓사용후 해당 스레드가 남아있을때 처리 방법 [4]파일 다운로드1
5038이정석8/9/201816952서버파일 로컬파일 비교 [2]
5037jjh8/8/201821145c# 으로 화면캡쳐해서 동영상으로 만드는앱을 만들고싶습니다 [6]
5036볼딱지8/8/201818781C# programming 개발 관련 질문이 있습니다. [1]
5035궁금합니...8/8/201819315C# 버전 고민 어떤 책을 사야하나요? [1]
5034신동열8/8/201817398덤프 파일 분석 관련해서 문의 드려요. [1]
5033최규성8/7/201820203C# WinForm, Oracle 9i 로 프로그래밍시 ODP.NET, 배포 설정 방법 질문입니다. [6]
5032이정석8/6/201821851C# 으로 만들 dll 등록 [7]
5031J.S.8/6/201816458System.Array class의 구조에 대한 질문 [1]
5030농상8/4/201816804람다 식을 이용한 메서드 정의 확대를 공부하고 있습니다. [2]
5029Soul...8/3/201816600C# ActiveX 컨트롤 질문드립니다. [4]
5028도토리8/1/201816950혹시 회사에서 TFS 구축시 SQL-Server 라이선스 정책 아시는분 계신지요? [2]
5027농상7/31/201818346Freachable Queue의 발음을 표기하면 어떨까요? [2]
5026농상7/31/201821321소멸자의 이름에 대해서 [2]
5025김기철7/30/201817724selenium 질문좀 드릴개요 [3]
5024농상7/29/201816969패턴 매칭 when에 대해서 질문있습니다. [2]
5023농상7/28/201821371패턴매칭에 대해서 질문 있습니다. [1]
... 31  32  33  [34]  35  36  37  38  39  40  41  42  43  44  45  ...