열거 클래스를 Matlab의 비 정적 메서드와 결합하려고합니다. 'LogEvent'클래스를 만들고 싶습니다.이 클래스는 입력 인수로 열거 형 멤버 (예 : LogEvent.INFO, LogEvent.ERROR 또는 LogEvent.WARNING)와 문자열을 취하는 'log'함수를 가지고 있습니다. 이 메시지를 파일에 추가합니다. 이 프로그램은 다른 프로그램에 대해이 LogEvent 클래스를 반복적으로 사용하기를 원합니다.이 클래스는 생성 중에 지정된 'fileName'속성을 가지며 출력 파일을 참조합니다. 나는 그러나 약간의 결과에이 문제를 인터넷 검색을 시도하지만 내가이 완전히 잘못된 방향으로 접근 할 수 있도록 인정 하듯이 내가 프로그래밍 경험이 많지 않아 지금Matlab - 비 정적 메서드로 열거 클래스 결합
classdef LogEvent
%Class definition for logging events.
properties
fileName;
end
methods
function obj = LogEvent(outFile)
obj.fileName = outFile;
end
function log(obj,type,logStr)
switch (type)
case LogEvent.INFO
typeStr = 'INFO';
case LogEvent.WARNING
typeStr = 'WARNING';
case LogEvent.ERROR
typeStr = 'ERROR';
end
FID = fopen(obj.fileName,'a');
Str = sprintf('%s - %s: %s\n',datestr(now),typeStr,logStr);
fprintf(FID,Str);
fclose(FID);
end
end
enumeration
INFO,
WARNING,
ERROR
end
end
: 다음은 내 classdef 파일을 형성하는 코드는 - 머리에 못을 박는 특정 키워드를 알지 못할 수도 있습니다. 이 클래스의 여러 인스턴스를 만들어야 (다른 파일을 참조) 할 필요가 있기 때문에 내 생각이지만 '로그'함수는 정적이 아니어야합니다. 나는이 오류 메시지가 불구하고이 클래스의 인스턴스를 만들려고 얻을 다음 'ZOHB'클래스 내부
Error using LogEvent
While creating an instance of class 'LogEvent':
No value has been provided for the enumeration member named 'INFO'. For an
enumeration derived from a built-in class, a value must be provided for each
enumeration member.
Error in ZOHB (line 10)
obj.Log = LogEvent('ZOHB.log');
을, 나는 LOGEVENT 클래스의 인스턴스를 만들려고하고 ZOHB 클래스의 속성으로 지정 .
고마워요! 테스트 및 작업 중 ... – Charlie