using System;
public class Test
{
public static void Main( )
{
// your code goes here
try
{
switch ( new TestFileManage( ) .TempFileCreate ( "targetPath" ) )
{
case Ret.OK :
MessageBox.Show ( "一時ファイルが作成されました。" ) ;
break ;
case Ret.CANCEL :
MessageBox.Show ( "一時ファイル作成がキャンセルされました。" ) ;
break ;
case Ret.ERROR :
MessageBox.Show ( "一時ファイル作成に失敗しました。" ) ;
break ;
defalut:
// 予期せぬ値が入ってくる場合
break ;
}
}
catch
{
string err = String.Empty ;
if ( string.IsNullOrEmpty ( Common.errMsg ) )
{
err = Common.errMsg ;
}
else
{
err = "予想外のエラーが発生しました。" ;
}
MessageBox.Show ( err) ;
// ここでエラーメッセージ込みのログ出力処理
}
}
}
public class TestFileManage
{
public Ret TempFileCreate( string path)
{
try {
if ( MyFile.CreateDir ( path) == Ret.OK )
{
return MyFile.CreateFile ( ) ;
}
return Ret.CANCEL ;
} catch {
Common.SetMsg ( "一時ファイル作成中にエラーが発生しました。" ) ;
throw;
}
}
}
public class MyFile
{
public MyFile( ) { }
public static Ret CreateDir( string path)
{
if ( ! Directory.Exists ( path) )
{
Directory.CreateDirectory ( path) ;
}
return Ret.OK ;
}
public Ret CreateFile( string path)
{
if ( Directory.Exists ( path) )
{
if ( ! File.Exists ( path) )
{
File.Create ( path) ;
return Ret.OK ;
} else {
return Ret.CANCEL ;
}
} else {
return Ret.ERROR ;
}
}
}
public class Common
{
public static string errMsg { set; get; }
public static void SetMsg( string msg)
{
if ( String.isNullOrEmpty ( errMsg) )
{
errMsg = msg;
}
}
}
enum Ret : int
{
ERROR = - 1 , OK, CANCEL
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQl0cnkgCgkJewoJCQlzd2l0Y2ggKG5ldyBUZXN0RmlsZU1hbmFnZSgpLlRlbXBGaWxlQ3JlYXRlKCJ0YXJnZXRQYXRoIikpCgkJCXsKCQkJCWNhc2UgUmV0Lk9LOgoJCQkJCU1lc3NhZ2VCb3guU2hvdygi5LiA5pmC44OV44Kh44Kk44Or44GM5L2c5oiQ44GV44KM44G+44GX44Gf44CCIik7CgkJCQkJYnJlYWs7CgkJCQljYXNlIFJldC5DQU5DRUw6CgkJCQkJTWVzc2FnZUJveC5TaG93KCLkuIDmmYLjg5XjgqHjgqTjg6vkvZzmiJDjgYzjgq3jg6Pjg7Pjgrvjg6vjgZXjgozjgb7jgZfjgZ/jgIIiKTsKCQkJCQlicmVhazsKCQkJCWNhc2UgUmV0LkVSUk9SOgoJCQkJCU1lc3NhZ2VCb3guU2hvdygi5LiA5pmC44OV44Kh44Kk44Or5L2c5oiQ44Gr5aSx5pWX44GX44G+44GX44Gf44CCIik7CgkJCQkJYnJlYWs7CgkJCQlkZWZhbHV0OgoJCQkJCS8vIOS6iOacn+OBm+OBrOWApOOBjOWFpeOBo+OBpuOBj+OCi+WgtOWQiAoJCQkJCWJyZWFrOwoJCQl9CgkJfQoJCWNhdGNoCgkJewoJCQlzdHJpbmcgZXJyID0gU3RyaW5nLkVtcHR5OwoJCQlpZihzdHJpbmcuSXNOdWxsT3JFbXB0eShDb21tb24uZXJyTXNnKSkKCQkJewoJCQkJZXJyID0gQ29tbW9uLmVyck1zZzsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCWVyciA9ICLkuojmg7PlpJbjga7jgqjjg6njg7zjgYznmbrnlJ/jgZfjgb7jgZfjgZ/jgIIiOwoJCQl9CgkJCU1lc3NhZ2VCb3guU2hvdyhlcnIpOwoJCQkvLyDjgZPjgZPjgafjgqjjg6njg7zjg6Hjg4Pjgrvjg7zjgrjovrzjgb/jga7jg63jgrDlh7rlipvlh6bnkIYKCQl9Cgl9Cn0KCnB1YmxpYyBjbGFzcyBUZXN0RmlsZU1hbmFnZQp7CglwdWJsaWMgUmV0IFRlbXBGaWxlQ3JlYXRlKHN0cmluZyBwYXRoKSAKCXsKCQl0cnkgewoJCQlpZihNeUZpbGUuQ3JlYXRlRGlyKHBhdGgpID09IFJldC5PSykKCQkJewoJCQkJcmV0dXJuIE15RmlsZS5DcmVhdGVGaWxlKCk7CgkJCX0KCQkJcmV0dXJuIFJldC5DQU5DRUw7CgkJfSBjYXRjaCB7CgkJCUNvbW1vbi5TZXRNc2coIuS4gOaZguODleOCoeOCpOODq+S9nOaIkOS4reOBq+OCqOODqeODvOOBjOeZuueUn+OBl+OBvuOBl+OBn+OAgiIpOwoJCQl0aHJvdzsKCQl9Cgl9Cn0KCnB1YmxpYyBjbGFzcyBNeUZpbGUKewoJcHVibGljIE15RmlsZSgpe30KCQoJcHVibGljIHN0YXRpYyBSZXQgQ3JlYXRlRGlyKHN0cmluZyBwYXRoKQoJewoJCWlmKCFEaXJlY3RvcnkuRXhpc3RzKHBhdGgpKQoJCXsKCQkJRGlyZWN0b3J5LkNyZWF0ZURpcmVjdG9yeShwYXRoKTsKCQl9CgkJcmV0dXJuIFJldC5PSzsKCX0KCQoJcHVibGljIFJldCBDcmVhdGVGaWxlKHN0cmluZyBwYXRoKQoJewoJCWlmIChEaXJlY3RvcnkuRXhpc3RzKHBhdGgpKQoJCXsKCQkJaWYoIUZpbGUuRXhpc3RzKHBhdGgpKQoJCQl7CgkJCQlGaWxlLkNyZWF0ZShwYXRoKTsKCQkJCXJldHVybiBSZXQuT0s7CgkJCX0gZWxzZSB7CgkJCQlyZXR1cm4gUmV0LkNBTkNFTDsKCQkJfQoJCX0gZWxzZSB7CgkJCXJldHVybiBSZXQuRVJST1I7CgkJfQoJfQoKfQoKcHVibGljIGNsYXNzIENvbW1vbgp7CglwdWJsaWMgc3RhdGljIHN0cmluZyBlcnJNc2cge3NldDsgZ2V0O30KCQoJcHVibGljIHN0YXRpYyB2b2lkIFNldE1zZyhzdHJpbmcgbXNnKQoJewoJCWlmIChTdHJpbmcuaXNOdWxsT3JFbXB0eShlcnJNc2cpKQoJCXsKCQkJZXJyTXNnID0gbXNnOwoJCX0KCX0KfQoKZW51bSBSZXQgOiBpbnQgCnsKCUVSUk9SID0gLTEsIE9LLCBDQU5DRUwgCQp9
compilation info
prog.cs(45,13): error CS0050: Inconsistent accessibility: return type `Ret' is less accessible than method `TestFileManage.TempFileCreate(string)'
prog.cs(104,6): (Location of the symbol related to previous error)
prog.cs(64,20): error CS0050: Inconsistent accessibility: return type `Ret' is less accessible than method `MyFile.CreateDir(string)'
prog.cs(104,6): (Location of the symbol related to previous error)
prog.cs(73,13): error CS0050: Inconsistent accessibility: return type `Ret' is less accessible than method `MyFile.CreateFile(string)'
prog.cs(104,6): (Location of the symbol related to previous error)
Compilation failed: 3 error(s), 0 warnings
stdout