내 또 다른 하나는 나무에 대한 질문을 볼 수 없습니다.단일 데이터 입력에서 교차 참조 구조
배경
나는 (지금)에 걸쳐 문화의 작은 범위를 등가물을 요리에 미리 정의 된 구조를 조회 할 수있는 요구 사항을 가지고있다. 구조는 변하지 않을 것이나 다른 문화 및/또는 등가물이 도입 될 가능성은 매우 강력합니다.
문제
나는 장소 제가 주어진 한 내용의 핵심을 유지할 수 있도록 해주는 2 '구조'에 넣어 좋아하지만 동시에 허용 할나 지능적으로 입력 동일한 측정은 한 번만 가능합니다. 아래 예에서는 UK 측정 값을 파트너 Metric 및 미국 카운터 값으로 반환하기 위해 동등한 항목 만 만들었습니다. 내 목표는 미국의 대응 등, 등의 질문
이 같은 암시을 너무 많이 요구하고 주어진다면이 하나의 입력에서, 구조가 영국 상당을 다시 침을 할 수있을 것이다 것 구조가이 방식으로 작동 할 수 있어야합니다. 그런 일에 대해 물어 보는 것은 나쁜 습관입니까 ?? 그런 딜레마를 해결하는 방법은 무엇입니까?
예 콘솔 응용 프로그램
채찍까지 : 속히,
// this should produce a value of **CupLitre**
var eqv = conversion["CupUS"][LocaleM.Metric];
어쨌든 : 최종 게임은 동등한이의 라인을 따라 하나의 라이너로 제작되어야한다는 것 아래에 코드를 붙여 넣으십시오 (.net v3.5).
using System;
using System.Collections.Generic;
using UnitOfMeasurements;
namespace UnitOfMeasurements
{
[Flags]
public enum LocaleM
{
None = 0, //(0000)
Metric = 1, //(0001)
UK = 2, //(0010)
US = 4, //(0100)
}
}
class Program
{
public static void Main(string[] args)
{
// single structure representing UK equivalents
// this should be extensible to any equivalent
var conversionUK
= new Dictionary<string, Dictionary<LocaleM, string>>
{
{"PintUK",
new Dictionary<LocaleM, string>
{
{LocaleM.US, "PintUS"},
{LocaleM.Metric, "Litre"}
}
},
{"FlOzUK",
new Dictionary<LocaleM, string>
{
{LocaleM.US, "FlOzUS"},
{LocaleM.Metric, "MilliLitre"}
}
},
{"CupUK",
new Dictionary<LocaleM, string>
{
{LocaleM.US, "CupUS"},
{LocaleM.Metric, "CupLitre"}
}
}
};
// basic printout of results
Console.WriteLine(string.Format("{0}\t{1}\t{2}", "Key","US","Metric"));
foreach (var item in conversionUK)
{
Console.WriteLine(string.Format("{0}\t{1}\t{2}",
item.Key,
item.Value[LocaleM.US],
item.Value[LocaleM.Metric]));
}
Console.WriteLine(string
.Format("Here's an example of our direct 'query' - {0}",
conversionUK["CupUK"][LocaleM.Metric]));
Console.Read();
}
}
간단하면서도 우아한 대답에 행운을 보입니다.
[편집] - 나 문자열 될 입력 ("PintUK", "CupMetric") 등을위한 요구 사항이 구체적 변환을 생성 하류 (IVolumeUnit)Activator.CreateInstance(eqv)
방법 구동된다 이들 값과 같은 필수임을 추가해야 지정된 캐릭터 라인 명의 클래스 접근 방식에 따라
있습니까? 그렇지 않은 경우, F #은 언어의 일부로 구운이 기능을 가지고 있습니다. http://blogs.msdn.com/b/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one- introduction-units.aspx – Juliet
Juliet - alas, only C# –