일부 데이터를 업데이트하는 데 사용하려는 C# 메서드가 있습니다. 방법은 두 문자열, 더블, 내 테이블의 특정 필드 이름을 업데이트 할 것 FLD의 값에 따라 정수가변 개수의 매개 변수를 허용하는 C# 함수를 코딩하는 방법은 무엇입니까?
public void Update(string ac, string pr, string fld, Int32 intVal = null, double dblVal = null, string strVal = null)
{
을 통과 할 수있다.
가능한 값 유형의 긴 목록을 제공 할 필요가 없도록 함수 매개 변수를 코딩 할 수있는 방법이 있습니까?
가 이상적으로이 같은이 함수를 호출 할 수 있도록하고 싶습니다 : 기능 업데이트 내에서 다음
Update("key1", "key2", "location", "London");
Update("key1" , "key2", "beds", 2);
Update("key1" , "key2", "price", 123.45);
을 내가하고 싶은 : 내가하고 싶은 XXX에서
public void Update(string ac, string pr, xxx, yyy)
{
try
{
vm.Product = _product.Get(ac, pr);
vm.Product.xxx = yyy;
_product.AddOrUpdate(vm.Product);
}
catch (Exception e) { log(e); }
}
로를 필드 이름과 yyy에 실제 값을 제공하십시오. 어쩌면 함수 내에서 필드 이름에 기반한 사례 메서드로 어떤 종류의 캐스팅을 할 수 있습니다. 필드 이름의 수가 적기 때문에 쉽게 될 수 있습니다. 또한 vm 클래스의 리플렉션에서 데이터 유형을 찾을 수있는 방법이있을 수도 있지만 그건 내 지식을 훨씬 뛰어 넘습니다.
메소드 호출이 어떻게 나타나는지 몇 가지 예를 제공해 주시겠습니까? – BoltClock
항상 문자열을 전달한 다음 함수 내에서 int 또는 double (예 : Int32.Parse (strVal))으로 변환 할 수 있습니까? 그렇지 않으면 일부 경우 정밀도 문제가 발생합니까? – nycdan
그래, 항상 문자열을 전달하면 효과가 있다고 생각합니다. 함수 내에서 필요한 객체 유형으로 변환하면됩니다. 나는 이것이 좋은 방법이라고 생각합니다. –